From 0a5f88a2406bf78a216ea8e2128441766dd7cd9c Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Tue, 21 Aug 2012 17:22:45 -0700 Subject: Change the log level to be an enum rather than an int This allows for eliminating a match check. --- src/libsyntax/ast.rs | 6 +++++- src/libsyntax/parse/parser.rs | 2 +- src/libsyntax/print/pprust.rs | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 7d9803b4cc3..b20bcb5868a 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -309,6 +309,10 @@ enum blk_check_mode { default_blk, unchecked_blk, unsafe_blk, } type expr = {id: node_id, callee_id: node_id, node: expr_, span: span}; // Extra node ID is only used for index, assign_op, unary, binary +#[auto_serialize] +enum log_level { error, debug, other } +// 0 = error, 1 = debug, 2 = other + #[auto_serialize] enum alt_mode { alt_check, alt_exhaustive, } @@ -354,7 +358,7 @@ enum expr_ { expr_break(option), expr_again(option), expr_ret(option<@expr>), - expr_log(int, @expr, @expr), + expr_log(log_level, @expr, @expr), /* just an assert */ expr_assert(@expr), diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index fea79309c21..fed81fa7520 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -947,7 +947,7 @@ struct parser { let lvl = self.parse_expr(); self.expect(token::COMMA); let e = self.parse_expr(); - ex = expr_log(2, lvl, e); + ex = expr_log(ast::other, lvl, e); hi = self.span.hi; self.expect(token::RPAREN); } else if self.eat_keyword(~"assert") { diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 573eeffd968..f9d65bd7e47 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1309,10 +1309,10 @@ fn print_expr(s: ps, &&expr: @ast::expr) { } } ast::expr_log(lvl, lexp, expr) => { - match check lvl { - 1 => { word_nbsp(s, ~"log"); print_expr(s, expr); } - 0 => { word_nbsp(s, ~"log_err"); print_expr(s, expr); } - 2 => { + match lvl { + ast::debug => { word_nbsp(s, ~"log"); print_expr(s, expr); } + ast::error => { word_nbsp(s, ~"log_err"); print_expr(s, expr); } + ast::other => { word_nbsp(s, ~"log"); popen(s); print_expr(s, lexp); -- cgit 1.4.1-3-g733a5