diff options
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 86 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 7 | ||||
| -rw-r--r-- | src/libsyntax/oldvisit.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 11 | ||||
| -rw-r--r-- | src/libsyntax/parse/token.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 5 |
8 files changed, 49 insertions, 83 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 6957f9ae351..c4038932613 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -550,7 +550,9 @@ pub enum Expr_ { ExprBreak(Option<Ident>), ExprAgain(Option<Ident>), ExprRet(Option<@Expr>), - ExprLog(@Expr, @Expr), + + /// Gets the log level for the enclosing module + ExprLogLevel, ExprInlineAsm(inline_asm), diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 099fa54c0c2..50a14c0fd71 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -870,59 +870,41 @@ pub fn std_macros() -> @str { macro_rules! ignore (($($x:tt)*) => (())) - macro_rules! error ( - ($arg:expr) => ( - __log(1u32, fmt!( \"%?\", $arg )) - ); - ($( $arg:expr ),+) => ( - __log(1u32, fmt!( $($arg),+ )) - ) - ) - - macro_rules! warn ( - ($arg:expr) => ( - __log(2u32, fmt!( \"%?\", $arg )) - ); - ($( $arg:expr ),+) => ( - __log(2u32, fmt!( $($arg),+ )) - ) - ) - - macro_rules! info ( - ($arg:expr) => ( - __log(3u32, fmt!( \"%?\", $arg )) - ); - ($( $arg:expr ),+) => ( - __log(3u32, fmt!( $($arg),+ )) - ) - ) - - macro_rules! debug ( - ($arg:expr) => ( - if cfg!(debug) { __log(4u32, fmt!( \"%?\", $arg )) } - ); - ($( $arg:expr ),+) => ( - if cfg!(debug) { __log(4u32, fmt!( $($arg),+ )) } - ) - ) - - macro_rules! error2 ( - ($($arg:tt)*) => ( __log(1u32, format!($($arg)*))) - ) - - macro_rules! warn2 ( - ($($arg:tt)*) => ( __log(2u32, format!($($arg)*))) - ) - - macro_rules! info2 ( - ($($arg:tt)*) => ( __log(3u32, format!($($arg)*))) + macro_rules! log( + ($lvl:expr, $arg:expr) => ({ + let lvl = $lvl; + if lvl <= __log_level() { + ::std::logging::log(lvl, fmt!(\"%?\", $arg)) + } + }); + ($lvl:expr, $($arg:expr),+) => ({ + let lvl = $lvl; + if lvl <= __log_level() { + ::std::logging::log(lvl, fmt!($($arg),+)) + } + }) ) + macro_rules! error( ($($arg:tt)+) => (log!(1u32, $($arg)+)) ) + macro_rules! warn ( ($($arg:tt)+) => (log!(2u32, $($arg)+)) ) + macro_rules! info ( ($($arg:tt)+) => (log!(3u32, $($arg)+)) ) + macro_rules! debug( ($($arg:tt)+) => ( + if cfg!(debug) { log!(4u32, $($arg)+) } + )) - macro_rules! debug2 ( - ($($arg:tt)*) => ( - if cfg!(debug) { __log(4u32, format!($($arg)*)) } - ) + macro_rules! log2( + ($lvl:expr, $($arg:tt)+) => ({ + let lvl = $lvl; + if lvl <= __log_level() { + ::std::logging::log(lvl, format!($($arg)+)) + } + }) ) + macro_rules! error2( ($($arg:tt)+) => (log2!(1u32, $($arg)+)) ) + macro_rules! warn2 ( ($($arg:tt)+) => (log2!(2u32, $($arg)+)) ) + macro_rules! info2 ( ($($arg:tt)+) => (log2!(3u32, $($arg)+)) ) + macro_rules! debug2( ($($arg:tt)+) => ( + if cfg!(debug) { log2!(4u32, $($arg)+) } + )) macro_rules! fail( () => ( @@ -1149,13 +1131,13 @@ pub fn std_macros() -> @str { // allocation but should rather delegate to an invocation of // write! instead of format! macro_rules! print ( - ($($arg:tt)+) => ( ::std::io::print(format!($($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)+) => (::std::io::println(format!($($arg)+))) ) // NOTE: use this after a snapshot lands to abstract the details diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 11e39163992..664bd3f128a 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -617,12 +617,7 @@ pub fn noop_fold_expr(e: &Expr_, fld: @ast_fold) -> Expr_ { ExprRet(ref e) => { ExprRet(e.map_move(|x| fld.fold_expr(x))) } - ExprLog(lv, e) => { - ExprLog( - fld.fold_expr(lv), - fld.fold_expr(e) - ) - } + ExprLogLevel => ExprLogLevel, ExprInlineAsm(ref a) => { ExprInlineAsm(inline_asm { inputs: a.inputs.map(|&(c, input)| (c, fld.fold_expr(input))), diff --git a/src/libsyntax/oldvisit.rs b/src/libsyntax/oldvisit.rs index 850f73096ed..80e037bce81 100644 --- a/src/libsyntax/oldvisit.rs +++ b/src/libsyntax/oldvisit.rs @@ -567,10 +567,7 @@ pub fn visit_expr<E:Clone>(ex: @Expr, (e, v): (E, vt<E>)) { ExprBreak(_) => (), ExprAgain(_) => (), ExprRet(eo) => visit_expr_opt(eo, (e.clone(), v)), - ExprLog(lv, x) => { - (v.visit_expr)(lv, (e.clone(), v)); - (v.visit_expr)(x, (e.clone(), v)); - } + ExprLogLevel => (), ExprMac(ref mac) => visit_mac(mac, (e.clone(), v)), ExprParen(x) => (v.visit_expr)(x, (e.clone(), v)), ExprInlineAsm(ref a) => { diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index b8615352504..9410d0194c3 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -26,7 +26,7 @@ use ast::{Expr, Expr_, ExprAddrOf, ExprMatch, ExprAgain}; use ast::{ExprAssign, ExprAssignOp, ExprBinary, ExprBlock}; use ast::{ExprBreak, ExprCall, ExprCast, ExprDoBody}; use ast::{ExprField, ExprFnBlock, ExprIf, ExprIndex}; -use ast::{ExprLit, ExprLog, ExprLoop, ExprMac}; +use ast::{ExprLit, ExprLogLevel, ExprLoop, ExprMac}; use ast::{ExprMethodCall, ExprParen, ExprPath, ExprRepeat}; use ast::{ExprRet, ExprSelf, ExprStruct, ExprTup, ExprUnary}; use ast::{ExprVec, ExprVstore, ExprVstoreMutBox}; @@ -1832,13 +1832,10 @@ impl Parser { } } hi = self.last_span.hi; - } else if self.eat_keyword(keywords::__Log) { - // LOG expression + } else if self.eat_keyword(keywords::__LogLevel) { + // LOG LEVEL expression self.expect(&token::LPAREN); - let lvl = self.parse_expr(); - self.expect(&token::COMMA); - let e = self.parse_expr(); - ex = ExprLog(lvl, e); + ex = ExprLogLevel; hi = self.span.hi; self.expect(&token::RPAREN); } else if self.eat_keyword(keywords::Return) { diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 6b3a95a14f8..fa00b536837 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -456,7 +456,7 @@ fn mk_fresh_ident_interner() -> @ident_interner { "if", // 42 "impl", // 43 "let", // 44 - "__log", // 45 + "__log_level", // 45 "loop", // 46 "match", // 47 "mod", // 48 @@ -606,7 +606,7 @@ pub mod keywords { Impl, In, Let, - __Log, + __LogLevel, Loop, Match, Mod, @@ -651,7 +651,7 @@ pub mod keywords { Impl => Ident { name: 43, ctxt: 0 }, In => Ident { name: 63, ctxt: 0 }, Let => Ident { name: 44, ctxt: 0 }, - __Log => Ident { name: 45, ctxt: 0 }, + __LogLevel => Ident { name: 45, ctxt: 0 }, Loop => Ident { name: 46, ctxt: 0 }, Match => Ident { name: 47, ctxt: 0 }, Mod => Ident { name: 48, ctxt: 0 }, diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 282b66b2c59..ca0ff81b65b 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1414,13 +1414,9 @@ pub fn print_expr(s: @ps, expr: &ast::Expr) { _ => () } } - ast::ExprLog(lexp, expr) => { - word(s.s, "__log"); + ast::ExprLogLevel => { + word(s.s, "__log_level"); popen(s); - print_expr(s, lexp); - word(s.s, ","); - space_if_not_bol(s); - print_expr(s, expr); pclose(s); } ast::ExprInlineAsm(ref a) => { diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 191b4509a80..ea8edf0b3d1 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -643,10 +643,7 @@ pub fn walk_expr<E:Clone, V:Visitor<E>>(visitor: &mut V, expression: @Expr, env: ExprRet(optional_expression) => { walk_expr_opt(visitor, optional_expression, env.clone()) } - ExprLog(level, subexpression) => { - visitor.visit_expr(level, env.clone()); - visitor.visit_expr(subexpression, env.clone()); - } + ExprLogLevel => {} ExprMac(ref macro) => walk_mac(visitor, macro, env.clone()), ExprParen(subexpression) => { visitor.visit_expr(subexpression, env.clone()) |
