diff options
| author | bors <bors@rust-lang.org> | 2014-06-07 13:46:42 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-06-07 13:46:42 -0700 |
| commit | 01eb0ce1227e3c7c2c32832508ea2930bd2cbb62 (patch) | |
| tree | 9d8d8bbc9eba266e45a0384c94df7d987d982e07 | |
| parent | ddd09df1377456de0f8376414d27828ba104df5b (diff) | |
| parent | cc28ae5201b0927683b253dbe893a62a188aa5a5 (diff) | |
| download | rust-01eb0ce1227e3c7c2c32832508ea2930bd2cbb62.tar.gz rust-01eb0ce1227e3c7c2c32832508ea2930bd2cbb62.zip | |
auto merge of #14722 : hannobraun/rust/quote-args, r=alexcrichton
The need for this came up while I worked on a procedural macro that parses an argument and adds the same argument to a generated function.
| -rw-r--r-- | src/libsyntax/ext/quote.rs | 7 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index d7bab3e2ffa..0f5928ee198 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -135,6 +135,12 @@ pub mod rt { } } + impl ToSource for ast::Arg { + fn to_source(&self) -> String { + pprust::arg_to_str(self) + } + } + impl<'a> ToSource for &'a str { fn to_source(&self) -> String { let lit = dummy_spanned(ast::LitStr( @@ -264,6 +270,7 @@ pub mod rt { impl_to_tokens!(Generics) impl_to_tokens!(@ast::Expr) impl_to_tokens!(ast::Block) + impl_to_tokens!(ast::Arg) impl_to_tokens_self!(&'a str) impl_to_tokens!(()) impl_to_tokens!(char) diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 440070e70a6..05c2558da48 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -242,6 +242,10 @@ pub fn variant_to_str(var: &ast::Variant) -> String { to_str(|s| s.print_variant(var)) } +pub fn arg_to_str(arg: &ast::Arg) -> String { + to_str(|s| s.print_arg(arg)) +} + pub fn visibility_qualified(vis: ast::Visibility, s: &str) -> String { match vis { ast::Public => format!("pub {}", s).to_string(), |
