Shorten lifetime of even more panic temporaries

This commit is contained in:
David Tolnay 2023-05-15 01:14:57 -07:00
parent 0ebb5cbab6
commit 2f5d993945
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
2 changed files with 14 additions and 14 deletions

View File

@ -28,13 +28,13 @@ pub macro panic_2015 {
$crate::panicking::panic($msg) $crate::panicking::panic($msg)
), ),
// Use `panic_str` instead of `panic_display::<&str>` for non_fmt_panic lint. // Use `panic_str` instead of `panic_display::<&str>` for non_fmt_panic lint.
($msg:expr $(,)?) => ( ($msg:expr $(,)?) => ({
$crate::panicking::panic_str($msg) $crate::panicking::panic_str($msg);
), }),
// Special-case the single-argument case for const_panic. // Special-case the single-argument case for const_panic.
("{}", $arg:expr $(,)?) => ( ("{}", $arg:expr $(,)?) => ({
$crate::panicking::panic_display(&$arg) $crate::panicking::panic_display(&$arg);
), }),
($fmt:expr, $($arg:tt)+) => ({ ($fmt:expr, $($arg:tt)+) => ({
// Semicolon to prevent temporaries inside the formatting machinery from // Semicolon to prevent temporaries inside the formatting machinery from
// being considered alive in the caller after the panic_fmt call. // being considered alive in the caller after the panic_fmt call.
@ -52,9 +52,9 @@ pub macro panic_2021 {
$crate::panicking::panic("explicit panic") $crate::panicking::panic("explicit panic")
), ),
// Special-case the single-argument case for const_panic. // Special-case the single-argument case for const_panic.
("{}", $arg:expr $(,)?) => ( ("{}", $arg:expr $(,)?) => ({
$crate::panicking::panic_display(&$arg) $crate::panicking::panic_display(&$arg);
), }),
($($t:tt)+) => ({ ($($t:tt)+) => ({
// Semicolon to prevent temporaries inside the formatting machinery from // Semicolon to prevent temporaries inside the formatting machinery from
// being considered alive in the caller after the panic_fmt call. // being considered alive in the caller after the panic_fmt call.
@ -73,9 +73,9 @@ pub macro unreachable_2015 {
), ),
// Use of `unreachable_display` for non_fmt_panic lint. // Use of `unreachable_display` for non_fmt_panic lint.
// NOTE: the message ("internal error ...") is embedded directly in unreachable_display // NOTE: the message ("internal error ...") is embedded directly in unreachable_display
($msg:expr $(,)?) => ( ($msg:expr $(,)?) => ({
$crate::panicking::unreachable_display(&$msg) $crate::panicking::unreachable_display(&$msg);
), }),
($fmt:expr, $($arg:tt)*) => ( ($fmt:expr, $($arg:tt)*) => (
$crate::panic!($crate::concat!("internal error: entered unreachable code: ", $fmt), $($arg)*) $crate::panic!($crate::concat!("internal error: entered unreachable code: ", $fmt), $($arg)*)
), ),

View File

@ -19,11 +19,11 @@ pub macro panic_2015 {
$crate::rt::begin_panic("explicit panic") $crate::rt::begin_panic("explicit panic")
}), }),
($msg:expr $(,)?) => ({ ($msg:expr $(,)?) => ({
$crate::rt::begin_panic($msg) $crate::rt::begin_panic($msg);
}), }),
// Special-case the single-argument case for const_panic. // Special-case the single-argument case for const_panic.
("{}", $arg:expr $(,)?) => ({ ("{}", $arg:expr $(,)?) => ({
$crate::rt::panic_display(&$arg) $crate::rt::panic_display(&$arg);
}), }),
($fmt:expr, $($arg:tt)+) => ({ ($fmt:expr, $($arg:tt)+) => ({
// Semicolon to prevent temporaries inside the formatting machinery from // Semicolon to prevent temporaries inside the formatting machinery from