about summary refs log tree commit diff
path: root/src/libstd/lib.rs
diff options
context:
space:
mode:
authorKeegan McAllister <kmcallister@mozilla.com>2014-09-15 19:29:47 -0700
committerKeegan McAllister <kmcallister@mozilla.com>2015-01-05 12:00:56 -0800
commit73806ddd0fd91066d7b903a00a080cbadcc04311 (patch)
tree04df4f385e3e01a3f278862f190026aa6daca966 /src/libstd/lib.rs
parent1c2fddc6bf6332212fe899c2cb86ae7e645f6eba (diff)
downloadrust-73806ddd0fd91066d7b903a00a080cbadcc04311.tar.gz
rust-73806ddd0fd91066d7b903a00a080cbadcc04311.zip
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.
Diffstat (limited to 'src/libstd/lib.rs')
-rw-r--r--src/libstd/lib.rs12
1 files changed, 9 insertions, 3 deletions
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;