From 73806ddd0fd91066d7b903a00a080cbadcc04311 Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Mon, 15 Sep 2014 19:29:47 -0700 Subject: Use $crate and macro reexport to reduce duplicated code Many of libstd's macros are now re-exported from libcore and libcollections. Their libstd definitions have moved to a macros_stage0 module and can disappear after the next snapshot. Where the two crates had already diverged, I took the libstd versions as they're generally newer and better-tested. See e.g. d3c831b, which was a fix to libstd's assert_eq!() that didn't make it into libcore's. Fixes #16806. --- src/libstd/lib.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/libstd/lib.rs') diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 608ad9882b9..eba90d39b4a 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -117,13 +117,18 @@ #![reexport_test_harness_main = "test_main"] +#![macro_reexport(assert, assert_eq, debug_assert, debug_assert_eq, + unreachable, unimplemented, write, writeln, vec)] + #[cfg(test)] #[phase(plugin, link)] extern crate log; -extern crate alloc; -extern crate unicode; +#[phase(plugin, link)] extern crate core; +#[phase(plugin, link)] extern crate "collections" as core_collections; extern crate "rand" as core_rand; +extern crate alloc; +extern crate unicode; extern crate libc; // Make std testable by not duplicating lang items. See #2912 @@ -167,7 +172,8 @@ pub use unicode::char; /* Exported macros */ -pub mod macros; +#[cfg(stage0)] pub mod macros_stage0; +#[cfg(not(stage0))] pub mod macros; pub mod bitflags; mod rtdeps; -- cgit 1.4.1-3-g733a5