Qualify panic!
as core::panic!
in non-built-in core
macros
Otherwise code like this #![no_implicit_prelude] fn main() { ::std::todo!(); ::std::unimplemented!(); } will fail to compile, which is unfortunate and presumably unintended. This changes many invocations of `panic!` in a `macro_rules!` definition to invocations of `$crate::panic!`, which makes the invocations hygienic. Note that this does not make the built-in macro `assert!` hygienic.
This commit is contained in:
parent
a0d664bae6
commit
d37e1e186e
16 changed files with 461 additions and 483 deletions
|
@ -45,7 +45,7 @@ macro_rules! assert_eq {
|
|||
// The reborrows below are intentional. Without them, the stack slot for the
|
||||
// borrow is initialized even before the values are compared, leading to a
|
||||
// noticeable slow down.
|
||||
panic!(r#"assertion failed: `(left == right)`
|
||||
$crate::panic!(r#"assertion failed: `(left == right)`
|
||||
left: `{:?}`,
|
||||
right: `{:?}`"#, &*left_val, &*right_val)
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ macro_rules! assert_eq {
|
|||
// The reborrows below are intentional. Without them, the stack slot for the
|
||||
// borrow is initialized even before the values are compared, leading to a
|
||||
// noticeable slow down.
|
||||
panic!(r#"assertion failed: `(left == right)`
|
||||
$crate::panic!(r#"assertion failed: `(left == right)`
|
||||
left: `{:?}`,
|
||||
right: `{:?}`: {}"#, &*left_val, &*right_val,
|
||||
$crate::format_args!($($arg)+))
|
||||
|
@ -96,7 +96,7 @@ macro_rules! assert_ne {
|
|||
// The reborrows below are intentional. Without them, the stack slot for the
|
||||
// borrow is initialized even before the values are compared, leading to a
|
||||
// noticeable slow down.
|
||||
panic!(r#"assertion failed: `(left != right)`
|
||||
$crate::panic!(r#"assertion failed: `(left != right)`
|
||||
left: `{:?}`,
|
||||
right: `{:?}`"#, &*left_val, &*right_val)
|
||||
}
|
||||
|
@ -110,7 +110,7 @@ macro_rules! assert_ne {
|
|||
// The reborrows below are intentional. Without them, the stack slot for the
|
||||
// borrow is initialized even before the values are compared, leading to a
|
||||
// noticeable slow down.
|
||||
panic!(r#"assertion failed: `(left != right)`
|
||||
$crate::panic!(r#"assertion failed: `(left != right)`
|
||||
left: `{:?}`,
|
||||
right: `{:?}`: {}"#, &*left_val, &*right_val,
|
||||
$crate::format_args!($($arg)+))
|
||||
|
@ -468,7 +468,7 @@ macro_rules! writeln {
|
|||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// This will always [`panic!`]
|
||||
/// This will always [`panic!`].
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
@ -502,13 +502,13 @@ macro_rules! writeln {
|
|||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
macro_rules! unreachable {
|
||||
() => ({
|
||||
panic!("internal error: entered unreachable code")
|
||||
$crate::panic!("internal error: entered unreachable code")
|
||||
});
|
||||
($msg:expr $(,)?) => ({
|
||||
$crate::unreachable!("{}", $msg)
|
||||
});
|
||||
($fmt:expr, $($arg:tt)*) => ({
|
||||
panic!($crate::concat!("internal error: entered unreachable code: ", $fmt), $($arg)*)
|
||||
$crate::panic!($crate::concat!("internal error: entered unreachable code: ", $fmt), $($arg)*)
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -586,8 +586,8 @@ macro_rules! unreachable {
|
|||
#[macro_export]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
macro_rules! unimplemented {
|
||||
() => (panic!("not implemented"));
|
||||
($($arg:tt)+) => (panic!("not implemented: {}", $crate::format_args!($($arg)+)));
|
||||
() => ($crate::panic!("not implemented"));
|
||||
($($arg:tt)+) => ($crate::panic!("not implemented: {}", $crate::format_args!($($arg)+)));
|
||||
}
|
||||
|
||||
/// Indicates unfinished code.
|
||||
|
@ -647,8 +647,8 @@ macro_rules! unimplemented {
|
|||
#[macro_export]
|
||||
#[stable(feature = "todo_macro", since = "1.40.0")]
|
||||
macro_rules! todo {
|
||||
() => (panic!("not yet implemented"));
|
||||
($($arg:tt)+) => (panic!("not yet implemented: {}", $crate::format_args!($($arg)+)));
|
||||
() => ($crate::panic!("not yet implemented"));
|
||||
($($arg:tt)+) => ($crate::panic!("not yet implemented: {}", $crate::format_args!($($arg)+)));
|
||||
}
|
||||
|
||||
/// Definitions of built-in macros.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue