Skip to content

Commit 8767093

Browse files
committed
std: Rewrite the write! and writeln! macros
These are reimplemented using the new `core::fmt` module.
1 parent 854d95f commit 8767093

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/libstd/macros.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -251,20 +251,27 @@ macro_rules! format_strbuf(
251251
/// write!(&mut w, "formatted {}", "arguments");
252252
/// ```
253253
#[macro_export]
254+
#[cfg(not(stage0))]
254255
macro_rules! write(
255256
($dst:expr, $($arg:tt)*) => ({
256-
let dst: &mut ::std::io::Writer = $dst;
257-
format_args!(|args| { ::std::fmt::write(dst, args) }, $($arg)*)
257+
format_args_method!($dst, write_fmt, $($arg)*)
258+
})
259+
)
260+
#[cfg(stage0)]
261+
#[macro_export]
262+
macro_rules! write(
263+
($dst:expr, $($arg:tt)*) => ({
264+
format_args!(|args| { $dst.write_fmt(args) }, $($arg)*)
258265
})
259266
)
260267

261268
/// Equivalent to the `write!` macro, except that a newline is appended after
262269
/// the message is written.
263270
#[macro_export]
264271
macro_rules! writeln(
265-
($dst:expr, $($arg:tt)*) => ({
266-
let dst: &mut ::std::io::Writer = $dst;
267-
format_args!(|args| { ::std::fmt::writeln(dst, args) }, $($arg)*)
272+
($dst:expr, $fmt:expr $($arg:tt)*) => ({
273+
format_args!(|args| { $dst.write_fmt(args) },
274+
concat!($fmt, "\n") $($arg)*)
268275
})
269276
)
270277

0 commit comments

Comments
 (0)