summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorPaul Stansifer <paul.stansifer@gmail.com>2012-11-26 22:12:31 -0500
committerGraydon Hoare <graydon@mozilla.com>2012-11-29 12:09:11 -0800
commit9ff8d1876630e7e3d1b0eef6c0c51610a19c4b98 (patch)
tree7e02e221254850a8995d6e75d17663ad89cb77b3 /src/libsyntax/ext
parenta88f9ac732e5674404103b7c975f0dba845d79a6 (diff)
downloadrust-9ff8d1876630e7e3d1b0eef6c0c51610a19c4b98.tar.gz
rust-9ff8d1876630e7e3d1b0eef6c0c51610a19c4b98.zip
Fix trace_macros so that it works.
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/trace_macros.rs14
1 files 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)