Skip to content

Commit

Permalink
Rollup merge of #63613 - petrochenkov:stdhyg, r=alexcrichton
Browse files Browse the repository at this point in the history
Hygienize use of built-in macros in the standard library

Same as #61629, but for built-in macros.

Closes #48781
r? @alexcrichton
  • Loading branch information
Centril committed Aug 16, 2019
2 parents b731131 + 263e3c5 commit cd21715
Show file tree
Hide file tree
Showing 11 changed files with 26 additions and 54 deletions.
2 changes: 1 addition & 1 deletion src/liballoc/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,5 +98,5 @@ macro_rules! vec {
#[macro_export]
#[stable(feature = "rust1", since = "1.0.0")]
macro_rules! format {
($($arg:tt)*) => ($crate::fmt::format(format_args!($($arg)*)))
($($arg:tt)*) => ($crate::fmt::format(::core::format_args!($($arg)*)))
}
35 changes: 14 additions & 21 deletions src/libcore/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@
///
/// For details, see `std::macros`.
#[macro_export]
#[allow_internal_unstable(core_panic, __rust_unstable_column)]
#[allow_internal_unstable(core_panic)]
#[stable(feature = "core", since = "1.6.0")]
macro_rules! panic {
() => (
$crate::panic!("explicit panic")
);
($msg:expr) => ({
$crate::panicking::panic(&($msg, file!(), line!(), __rust_unstable_column!()))
$crate::panicking::panic(&($msg, $crate::file!(), $crate::line!(), $crate::column!()))
});
($msg:expr,) => (
$crate::panic!($msg)
);
($fmt:expr, $($arg:tt)+) => ({
$crate::panicking::panic_fmt(format_args!($fmt, $($arg)+),
&(file!(), line!(), __rust_unstable_column!()))
$crate::panicking::panic_fmt($crate::format_args!($fmt, $($arg)+),
&($crate::file!(), $crate::line!(), $crate::column!()))
});
}

Expand Down Expand Up @@ -70,7 +70,7 @@ macro_rules! assert_eq {
panic!(r#"assertion failed: `(left == right)`
left: `{:?}`,
right: `{:?}`: {}"#, &*left_val, &*right_val,
format_args!($($arg)+))
$crate::format_args!($($arg)+))
}
}
}
Expand Down Expand Up @@ -127,7 +127,7 @@ macro_rules! assert_ne {
panic!(r#"assertion failed: `(left != right)`
left: `{:?}`,
right: `{:?}`: {}"#, &*left_val, &*right_val,
format_args!($($arg)+))
$crate::format_args!($($arg)+))
}
}
}
Expand Down Expand Up @@ -181,7 +181,7 @@ macro_rules! assert_ne {
#[macro_export]
#[stable(feature = "rust1", since = "1.0.0")]
macro_rules! debug_assert {
($($arg:tt)*) => (if cfg!(debug_assertions) { assert!($($arg)*); })
($($arg:tt)*) => (if $crate::cfg!(debug_assertions) { $crate::assert!($($arg)*); })
}

/// Asserts that two expressions are equal to each other.
Expand All @@ -208,7 +208,7 @@ macro_rules! debug_assert {
#[macro_export]
#[stable(feature = "rust1", since = "1.0.0")]
macro_rules! debug_assert_eq {
($($arg:tt)*) => (if cfg!(debug_assertions) { $crate::assert_eq!($($arg)*); })
($($arg:tt)*) => (if $crate::cfg!(debug_assertions) { $crate::assert_eq!($($arg)*); })
}

/// Asserts that two expressions are not equal to each other.
Expand All @@ -235,7 +235,7 @@ macro_rules! debug_assert_eq {
#[macro_export]
#[stable(feature = "assert_ne", since = "1.13.0")]
macro_rules! debug_assert_ne {
($($arg:tt)*) => (if cfg!(debug_assertions) { $crate::assert_ne!($($arg)*); })
($($arg:tt)*) => (if $crate::cfg!(debug_assertions) { $crate::assert_ne!($($arg)*); })
}

/// Unwraps a result or propagates its error.
Expand Down Expand Up @@ -386,7 +386,7 @@ macro_rules! r#try {
#[macro_export]
#[stable(feature = "rust1", since = "1.0.0")]
macro_rules! write {
($dst:expr, $($arg:tt)*) => ($dst.write_fmt(format_args!($($arg)*)))
($dst:expr, $($arg:tt)*) => ($dst.write_fmt($crate::format_args!($($arg)*)))
}

/// Write formatted data into a buffer, with a newline appended.
Expand Down Expand Up @@ -446,7 +446,7 @@ macro_rules! writeln {
$crate::writeln!($dst)
);
($dst:expr, $($arg:tt)*) => (
$dst.write_fmt(format_args_nl!($($arg)*))
$dst.write_fmt($crate::format_args_nl!($($arg)*))
);
}

Expand Down Expand Up @@ -515,7 +515,7 @@ macro_rules! unreachable {
$crate::unreachable!($msg)
});
($fmt:expr, $($arg:tt)*) => ({
panic!(concat!("internal error: entered unreachable code: ", $fmt), $($arg)*)
panic!($crate::concat!("internal error: entered unreachable code: ", $fmt), $($arg)*)
});
}

Expand Down Expand Up @@ -573,7 +573,7 @@ macro_rules! unreachable {
#[stable(feature = "rust1", since = "1.0.0")]
macro_rules! unimplemented {
() => (panic!("not yet implemented"));
($($arg:tt)+) => (panic!("not yet implemented: {}", format_args!($($arg)+)));
($($arg:tt)+) => (panic!("not yet implemented: {}", $crate::format_args!($($arg)+)));
}

/// Indicates unfinished code.
Expand Down Expand Up @@ -632,7 +632,7 @@ macro_rules! unimplemented {
#[unstable(feature = "todo_macro", issue = "59277")]
macro_rules! todo {
() => (panic!("not yet implemented"));
($($arg:tt)+) => (panic!("not yet implemented: {}", format_args!($($arg)+)));
($($arg:tt)+) => (panic!("not yet implemented: {}", $crate::format_args!($($arg)+)));
}

/// Definitions of built-in macros.
Expand Down Expand Up @@ -927,13 +927,6 @@ pub(crate) mod builtin {
#[macro_export]
macro_rules! column { () => { /* compiler built-in */ } }

/// Same as `column`, but less likely to be shadowed.
#[unstable(feature = "__rust_unstable_column", issue = "0",
reason = "internal implementation detail of the `panic` macro")]
#[rustc_builtin_macro]
#[macro_export]
macro_rules! __rust_unstable_column { () => { /* compiler built-in */ } }

/// Expands to the file name in which it was invoked.
///
/// With [`line!`] and [`column!`], these macros provide debugging information for
Expand Down
1 change: 0 additions & 1 deletion src/libcore/prelude/v1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ pub use crate::hash::macros::Hash;
#[stable(feature = "builtin_macro_prelude", since = "1.38.0")]
#[doc(no_inline)]
pub use crate::{
__rust_unstable_column,
asm,
assert,
cfg,
Expand Down
2 changes: 0 additions & 2 deletions src/libstd/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@
// std is implemented with unstable features, many of which are internal
// compiler details that will never be stable
// NB: the following list is sorted to minimize merge conflicts.
#![feature(__rust_unstable_column)]
#![feature(alloc_error_handler)]
#![feature(alloc_layout_extra)]
#![feature(allocator_api)]
Expand Down Expand Up @@ -551,7 +550,6 @@ pub use core::{
option_env,
stringify,
// Unstable
__rust_unstable_column,
asm,
concat_idents,
format_args_nl,
Expand Down
20 changes: 10 additions & 10 deletions src/libstd/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,20 +53,20 @@
/// ```
#[macro_export]
#[stable(feature = "rust1", since = "1.0.0")]
#[allow_internal_unstable(__rust_unstable_column, libstd_sys_internals)]
#[allow_internal_unstable(libstd_sys_internals)]
macro_rules! panic {
() => ({
$crate::panic!("explicit panic")
});
($msg:expr) => ({
$crate::rt::begin_panic($msg, &(file!(), line!(), __rust_unstable_column!()))
$crate::rt::begin_panic($msg, &($crate::file!(), $crate::line!(), $crate::column!()))
});
($msg:expr,) => ({
$crate::panic!($msg)
});
($fmt:expr, $($arg:tt)+) => ({
$crate::rt::begin_panic_fmt(&format_args!($fmt, $($arg)+),
&(file!(), line!(), __rust_unstable_column!()))
$crate::rt::begin_panic_fmt(&$crate::format_args!($fmt, $($arg)+),
&($crate::file!(), $crate::line!(), $crate::column!()))
});
}

Expand Down Expand Up @@ -113,7 +113,7 @@ macro_rules! panic {
#[stable(feature = "rust1", since = "1.0.0")]
#[allow_internal_unstable(print_internals)]
macro_rules! print {
($($arg:tt)*) => ($crate::io::_print(format_args!($($arg)*)));
($($arg:tt)*) => ($crate::io::_print($crate::format_args!($($arg)*)));
}

/// Prints to the standard output, with a newline.
Expand Down Expand Up @@ -147,7 +147,7 @@ macro_rules! print {
macro_rules! println {
() => ($crate::print!("\n"));
($($arg:tt)*) => ({
$crate::io::_print(format_args_nl!($($arg)*));
$crate::io::_print($crate::format_args_nl!($($arg)*));
})
}

Expand Down Expand Up @@ -176,7 +176,7 @@ macro_rules! println {
#[stable(feature = "eprint", since = "1.19.0")]
#[allow_internal_unstable(print_internals)]
macro_rules! eprint {
($($arg:tt)*) => ($crate::io::_eprint(format_args!($($arg)*)));
($($arg:tt)*) => ($crate::io::_eprint($crate::format_args!($($arg)*)));
}

/// Prints to the standard error, with a newline.
Expand Down Expand Up @@ -206,7 +206,7 @@ macro_rules! eprint {
macro_rules! eprintln {
() => ($crate::eprint!("\n"));
($($arg:tt)*) => ({
$crate::io::_eprint(format_args_nl!($($arg)*));
$crate::io::_eprint($crate::format_args_nl!($($arg)*));
})
}

Expand Down Expand Up @@ -337,15 +337,15 @@ macro_rules! eprintln {
#[stable(feature = "dbg_macro", since = "1.32.0")]
macro_rules! dbg {
() => {
$crate::eprintln!("[{}:{}]", file!(), line!());
$crate::eprintln!("[{}:{}]", $crate::file!(), $crate::line!());
};
($val:expr) => {
// Use of `match` here is intentional because it affects the lifetimes
// of temporaries - https://stackoverflow.com/a/48732525/1063961
match $val {
tmp => {
$crate::eprintln!("[{}:{}] {} = {:#?}",
file!(), line!(), stringify!($val), &tmp);
$crate::file!(), $crate::line!(), $crate::stringify!($val), &tmp);
tmp
}
}
Expand Down
1 change: 0 additions & 1 deletion src/libstd/prelude/v1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ pub use crate::result::Result::{self, Ok, Err};
#[stable(feature = "builtin_macro_prelude", since = "1.38.0")]
#[doc(no_inline)]
pub use core::prelude::v1::{
__rust_unstable_column,
asm,
assert,
cfg,
Expand Down
1 change: 0 additions & 1 deletion src/libsyntax_ext/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ pub fn register_builtin_macros(resolver: &mut dyn syntax::ext::base::Resolver, e
}

register_bang! {
__rust_unstable_column: source_util::expand_column,
asm: asm::expand_asm,
assert: assert::expand_assert,
cfg: cfg::expand_cfg,
Expand Down
1 change: 0 additions & 1 deletion src/libsyntax_pos/symbol.rs
Original file line number Diff line number Diff line change
Expand Up @@ -609,7 +609,6 @@ symbols! {
rust_eh_personality,
rust_eh_unwind_resume,
rust_oom,
__rust_unstable_column,
rvalue_static_promotion,
sanitizer_runtime,
_Self,
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/macros/trace-macro.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ LL | println!("Hello, World!");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: expanding `println! { "Hello, World!" }`
= note: to `{ $crate :: io :: _print (format_args_nl ! ("Hello, World!")) ; }`
= note: to `{ $crate :: io :: _print ($crate :: format_args_nl ! ("Hello, World!")) ; }`

4 changes: 0 additions & 4 deletions src/test/ui/rust-unstable-column-gated.rs

This file was deleted.

11 changes: 0 additions & 11 deletions src/test/ui/rust-unstable-column-gated.stderr

This file was deleted.

0 comments on commit cd21715

Please sign in to comment.