1
Fork 0

std: Stablize the macros module

This commit performs a pass over the `std::macros` module, applying stability
attributes where necessary. In particular, this audits macros for patterns such
as:

* Standard use of forward-to-format-args via `$($arg:tt)*` (or `+`)
* Prevent macro-defined identifiers from leaking into expression arguments as
  hygiene is not perfectly implemented.
* Wherever possible, `$crate` is used now.

Specifically, the following actions were taken:

* The `std::macros` module itself is no longer public.
* The `panic!` macro is stable
* The `assert!` macro is stable
* The `assert_eq!` macro is stable
* The `debug_assert!` macro is stable
* The `debug_assert_eq!` macro is stable
* The `unreachable!` macro is stable after removing the extra forms to bring the
  definition in line with the `unimplemented!` macro.
* The `try!` macro is stable
* The `vec!` macro is stable

[breaking-change]
This commit is contained in:
Alex Crichton 2015-01-06 11:07:09 -08:00
parent 9e4e524e0e
commit 209c701bf9
9 changed files with 33 additions and 224 deletions

View file

@ -120,8 +120,7 @@
extern crate log;
#[macro_use]
#[macro_reexport(assert, assert_eq, debug_assert, debug_assert_eq,
unreachable, unimplemented, write, writeln)]
#[macro_reexport(write, writeln)]
extern crate core;
#[macro_use]
@ -176,7 +175,7 @@ pub use unicode::char;
/* Exported macros */
#[macro_use]
pub mod macros;
mod macros;
#[macro_use]
pub mod bitflags;