about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimir Pouzanov <farcaller@gmail.com>2014-09-20 17:02:48 +0100
committerVladimir Pouzanov <farcaller@gmail.com>2014-09-29 09:45:36 +0100
commit75d49c8203405ab0af7a2b8b8698af02868fdbc2 (patch)
treed674427b6689b67dbfbb3f27b451af8f46c00fbc
parent5d335c94bd9017f16ce7538a5f4063e1178f15a1 (diff)
Fixed quote_method!() implementation
Parser.parse_method now has a second argument, I assume ast::Inherited is the correct visibility in this case.
-rw-r--r--src/libsyntax/ext/quote.rs8
-rw-r--r--src/test/run-pass-fulldeps/quote-tokens.rs2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs
index aa2a23dd276..0503c1e8cc2 100644
--- a/src/libsyntax/ext/quote.rs
+++ b/src/libsyntax/ext/quote.rs
@@ -464,9 +464,13 @@ pub fn expand_quote_method(cx: &mut ExtCtxt,
                            sp: Span,
                            tts: &[ast::TokenTree])
                            -> Box<base::MacResult+'static> {
-    let e_param_colons = cx.expr_none(sp);
+    let e_attrs = cx.expr_vec_ng(sp);
+    let e_visibility = cx.expr_path(cx.path_global(sp, vec!(
+        id_ext("syntax"),
+        id_ext("ast"),
+        id_ext("Inherited"))));
     let expanded = expand_parse_call(cx, sp, "parse_method",
-                                     vec!(e_param_colons), tts);
+                                     vec!(e_attrs, e_visibility), tts);
     base::MacExpr::new(expanded)
 }
 
diff --git a/src/test/run-pass-fulldeps/quote-tokens.rs b/src/test/run-pass-fulldeps/quote-tokens.rs
index b7c4c146382..7b48e7a84b6 100644
--- a/src/test/run-pass-fulldeps/quote-tokens.rs
+++ b/src/test/run-pass-fulldeps/quote-tokens.rs
@@ -35,6 +35,8 @@ fn syntax_extension(cx: &ExtCtxt) {
 
     let i: Option<P<syntax::ast::Item>> = quote_item!(cx, #[deriving(Eq)] struct Foo; );
     assert!(i.is_some());
+
+    let _j: P<syntax::ast::Method> = quote_method!(cx, fn foo(&self) {});
 }
 
 fn main() {