about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstd/macros.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/libstd/macros.rs b/src/libstd/macros.rs
index 3a0e78b39d1..063ee0d8215 100644
--- a/src/libstd/macros.rs
+++ b/src/libstd/macros.rs
@@ -251,10 +251,17 @@ macro_rules! format_strbuf(
 /// write!(&mut w, "formatted {}", "arguments");
 /// ```
 #[macro_export]
+#[cfg(not(stage0))]
 macro_rules! write(
     ($dst:expr, $($arg:tt)*) => ({
-        let dst: &mut ::std::io::Writer = $dst;
-        format_args!(|args| { ::std::fmt::write(dst, args) }, $($arg)*)
+        format_args_method!($dst, write_fmt, $($arg)*)
+    })
+)
+#[cfg(stage0)]
+#[macro_export]
+macro_rules! write(
+    ($dst:expr, $($arg:tt)*) => ({
+        format_args!(|args| { $dst.write_fmt(args) }, $($arg)*)
     })
 )
 
@@ -262,9 +269,9 @@ macro_rules! write(
 /// the message is written.
 #[macro_export]
 macro_rules! writeln(
-    ($dst:expr, $($arg:tt)*) => ({
-        let dst: &mut ::std::io::Writer = $dst;
-        format_args!(|args| { ::std::fmt::writeln(dst, args) }, $($arg)*)
+    ($dst:expr, $fmt:expr $($arg:tt)*) => ({
+        format_args!(|args| { $dst.write_fmt(args) },
+                     concat!($fmt, "\n") $($arg)*)
     })
 )