From 9ff8d1876630e7e3d1b0eef6c0c51610a19c4b98 Mon Sep 17 00:00:00 2001 From: Paul Stansifer Date: Mon, 26 Nov 2012 22:12:31 -0500 Subject: [PATCH] Fix trace_macros so that it works. --- src/libsyntax/ext/trace_macros.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/libsyntax/ext/trace_macros.rs b/src/libsyntax/ext/trace_macros.rs index a4e768aa7dc..f8c85fa01b7 100644 --- a/src/libsyntax/ext/trace_macros.rs +++ b/src/libsyntax/ext/trace_macros.rs @@ -15,12 +15,16 @@ fn expand_trace_macros(cx: ext_ctxt, sp: span, let rdr = tt_rdr as reader; let rust_parser = Parser(sess, cfg, rdr.dup()); - let arg = cx.str_of(rust_parser.parse_ident()); - match arg { - ~"true" => cx.set_trace_macros(true), - ~"false" => cx.set_trace_macros(false), - _ => cx.span_fatal(sp, ~"trace_macros! only accepts `true` or `false`") + if rust_parser.is_keyword(~"true") { + cx.set_trace_macros(true); + } else if rust_parser.is_keyword(~"false") { + cx.set_trace_macros(false); + } else { + cx.span_fatal(sp, ~"trace_macros! only accepts `true` or `false`") } + + rust_parser.bump(); + let rust_parser = Parser(sess, cfg, rdr.dup()); let result = rust_parser.parse_expr(); base::mr_expr(result)