Introduce alternate forms of logging
These new macros are all based on format! instead of fmt! and purely exist for bootstrapping purposes. After the next snapshot, all uses of logging will be migrated to these macros, and then after the next snapshot after that we can drop the `2` suffix on everything
This commit is contained in:
parent
eb836dd61e
commit
a3e39b9454
@ -758,32 +758,32 @@ macro_rules! info (
|
||||
)
|
||||
)
|
||||
|
||||
// conditionally define debug!, but keep it type checking even
|
||||
// in non-debug builds.
|
||||
macro_rules! __debug (
|
||||
macro_rules! debug (
|
||||
($arg:expr) => (
|
||||
__log(4u32, fmt!( \"%?\", $arg ))
|
||||
if cfg!(debug) { __log(4u32, fmt!( \"%?\", $arg )) }
|
||||
);
|
||||
($( $arg:expr ),+) => (
|
||||
__log(4u32, fmt!( $($arg),+ ))
|
||||
if cfg!(debug) { __log(4u32, fmt!( $($arg),+ )) }
|
||||
)
|
||||
)
|
||||
|
||||
#[cfg(debug)]
|
||||
#[macro_escape]
|
||||
mod debug_macro {
|
||||
macro_rules! debug (($($arg:expr),*) => {
|
||||
__debug!($($arg),*)
|
||||
})
|
||||
}
|
||||
macro_rules! error2 (
|
||||
($($arg:tt)*) => ( __log(1u32, format!($($arg)*)))
|
||||
)
|
||||
|
||||
#[cfg(not(debug))]
|
||||
#[macro_escape]
|
||||
mod debug_macro {
|
||||
macro_rules! debug (($($arg:expr),*) => {
|
||||
if false { __debug!($($arg),*) }
|
||||
})
|
||||
}
|
||||
macro_rules! warn2 (
|
||||
($($arg:tt)*) => ( __log(2u32, format!($($arg)*)))
|
||||
)
|
||||
|
||||
macro_rules! info2 (
|
||||
($($arg:tt)*) => ( __log(3u32, format!($($arg)*)))
|
||||
)
|
||||
|
||||
macro_rules! debug2 (
|
||||
($($arg:tt)*) => (
|
||||
if cfg!(debug) { __log(4u32, format!($($arg)*)) }
|
||||
)
|
||||
)
|
||||
|
||||
macro_rules! fail(
|
||||
() => (
|
||||
@ -797,6 +797,15 @@ macro_rules! fail(
|
||||
)
|
||||
)
|
||||
|
||||
macro_rules! fail2(
|
||||
() => (
|
||||
fail!(\"explicit failure\")
|
||||
);
|
||||
($($arg:tt)+) => (
|
||||
::std::sys::FailWithCause::fail_with(format!($($arg)+), file!(), line!())
|
||||
)
|
||||
)
|
||||
|
||||
macro_rules! assert(
|
||||
($cond:expr) => {
|
||||
if !$cond {
|
||||
@ -964,15 +973,13 @@ macro_rules! printfln (
|
||||
// allocation but should rather delegate to an invocation of
|
||||
// write! instead of format!
|
||||
macro_rules! print (
|
||||
() => ();
|
||||
($arg:expr) => ( ::std::io::print(format!(\"{}\", $arg)));
|
||||
($fmt:expr, $($arg:tt)+) => ( ::std::io::print(format!($fmt, $($arg)+)))
|
||||
($($arg:tt)+) => ( ::std::io::print(format!($($arg)+)))
|
||||
)
|
||||
|
||||
// FIXME(#6846) once stdio is redesigned, this shouldn't perform an
|
||||
// allocation but should rather delegate to an io::Writer
|
||||
macro_rules! println (
|
||||
($($arg:tt)*) => ({ print!($($arg)*); ::std::io::println(\"\"); })
|
||||
($($arg:tt)+) => ({ print!($($arg)+); ::std::io::println(\"\"); })
|
||||
)
|
||||
|
||||
// NOTE: use this after a snapshot lands to abstract the details
|
||||
|
@ -240,7 +240,7 @@ fn test_write() {
|
||||
// Just make sure that the macros are defined, there's not really a lot that we
|
||||
// can do with them just yet (to test the output)
|
||||
fn test_print() {
|
||||
print!(1);
|
||||
print!("hi");
|
||||
print!("{:?}", ~[0u8]);
|
||||
println!("hello");
|
||||
println!("this is a {}", "test");
|
||||
|
Loading…
Reference in New Issue
Block a user