summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorPaul Stansifer <paul.stansifer@gmail.com>2012-08-06 17:50:45 -0700
committerPaul Stansifer <paul.stansifer@gmail.com>2012-08-06 18:27:37 -0700
commitc0f7ed68e235b61a2e9710864a2283f554bb470d (patch)
treed00baa3f90ce0e4b24f747783bf0fe6e20cd842e /src/libsyntax/ext
parenta4cedd9598ec44d4f475adc3a9e62edcd08bc741 (diff)
downloadrust-c0f7ed68e235b61a2e9710864a2283f554bb470d.tar.gz
rust-c0f7ed68e235b61a2e9710864a2283f554bb470d.zip
Fix log_syntax of unexpanded code.
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/base.rs6
-rw-r--r--src/libsyntax/ext/log_syntax.rs15
2 files changed, 12 insertions, 9 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs
index f2e1855c0f5..79ef81f78c1 100644
--- a/src/libsyntax/ext/base.rs
+++ b/src/libsyntax/ext/base.rs
@@ -68,6 +68,9 @@ enum syntax_extension {
 fn syntax_expander_table() -> hashmap<~str, syntax_extension> {
     fn builtin(f: syntax_expander_) -> syntax_extension
         {normal({expander: f, span: none})}
+    fn builtin_expr_tt(f: syntax_expander_tt_) -> syntax_extension {
+        expr_tt({expander: f, span: none})
+    }
     fn builtin_item_tt(f: syntax_expander_tt_item_) -> syntax_extension {
         item_tt({expander: f, span: none})
     }
@@ -86,7 +89,8 @@ fn syntax_expander_table() -> hashmap<~str, syntax_extension> {
     syntax_expanders.insert(~"ident_to_str",
                             builtin(ext::ident_to_str::expand_syntax_ext));
     syntax_expanders.insert(~"log_syntax",
-                            builtin(ext::log_syntax::expand_syntax_ext));
+                            builtin_expr_tt(
+                                ext::log_syntax::expand_syntax_ext));
     syntax_expanders.insert(~"ast",
                             builtin(ext::qquote::expand_ast));
     syntax_expanders.insert(~"line",
diff --git a/src/libsyntax/ext/log_syntax.rs b/src/libsyntax/ext/log_syntax.rs
index f84e496be9c..3be74cba2e4 100644
--- a/src/libsyntax/ext/log_syntax.rs
+++ b/src/libsyntax/ext/log_syntax.rs
@@ -1,16 +1,15 @@
 import base::*;
 import io::writer_util;
 
-fn expand_syntax_ext(cx: ext_ctxt, sp: codemap::span, arg: ast::mac_arg,
-                     _body: ast::mac_body) -> @ast::expr {
-    let args = get_mac_args_no_max(cx,sp,arg,0u,~"log_syntax");
+fn expand_syntax_ext(cx: ext_ctxt, sp: codemap::span, tt: ~[ast::token_tree])
+    -> base::mac_result {
+
     cx.print_backtrace();
     io::stdout().write_line(
-        str::connect(vec::map(args,
-                              |&&ex| print::pprust::expr_to_str(ex)), ~", ")
-    );
+        print::pprust::unexpanded_tt_to_str(ast::tt_delim(tt),
+                                            cx.parse_sess().interner));
 
     //trivial expression
-    return @{id: cx.next_id(), callee_id: cx.next_id(),
-          node: ast::expr_rec(~[], option::none), span: sp};
+    return mr_expr(@{id: cx.next_id(), callee_id: cx.next_id(),
+                     node: ast::expr_rec(~[], option::none), span: sp});
 }