diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2017-02-21 05:05:59 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2017-03-03 02:15:37 +0000 |
| commit | f6eaaf350ea683ae8b33b4a79422ad1a10ea0987 (patch) | |
| tree | 06ec138259c84d8ec6d46b33402d6470263a8880 /src/libproc_macro_plugin | |
| parent | 8cd0c0885f841c9bfd0c330e3da21363427010e4 (diff) | |
| download | rust-f6eaaf350ea683ae8b33b4a79422ad1a10ea0987.tar.gz rust-f6eaaf350ea683ae8b33b4a79422ad1a10ea0987.zip | |
Integrate `TokenStream`.
Diffstat (limited to 'src/libproc_macro_plugin')
| -rw-r--r-- | src/libproc_macro_plugin/qquote.rs | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/src/libproc_macro_plugin/qquote.rs b/src/libproc_macro_plugin/qquote.rs index e3d85bca3e0..0276587ed52 100644 --- a/src/libproc_macro_plugin/qquote.rs +++ b/src/libproc_macro_plugin/qquote.rs @@ -18,7 +18,6 @@ use syntax::tokenstream::{self, Delimited, TokenTree, TokenStream}; use syntax_pos::DUMMY_SP; use std::iter; -use std::rc::Rc; pub fn qquote<'cx>(stream: TokenStream) -> TokenStream { stream.quote() @@ -50,10 +49,7 @@ macro_rules! quote_tree { } fn delimit(delim: token::DelimToken, stream: TokenStream) -> TokenStream { - TokenTree::Delimited(DUMMY_SP, Rc::new(Delimited { - delim: delim, - tts: stream.into_trees().collect(), - })).into() + TokenTree::Delimited(DUMMY_SP, Delimited { delim: delim, tts: stream.into() }).into() } macro_rules! quote { @@ -102,13 +98,6 @@ impl Quote for TokenStream { } } -impl Quote for Vec<TokenTree> { - fn quote(&self) -> TokenStream { - let stream = self.iter().cloned().collect::<TokenStream>(); - quote!((quote stream).into_trees().collect::<::std::vec::Vec<_> >()) - } -} - impl Quote for TokenTree { fn quote(&self) -> TokenStream { match *self { @@ -124,12 +113,12 @@ impl Quote for TokenTree { } } -impl Quote for Rc<Delimited> { +impl Quote for Delimited { fn quote(&self) -> TokenStream { - quote!(::std::rc::Rc::new(::syntax::tokenstream::Delimited { + quote!(::syntax::tokenstream::Delimited { delim: (quote self.delim), - tts: (quote self.tts), - })) + tts: (quote self.stream()).into(), + }) } } |
