@@ -18,7 +18,6 @@ use syntax::tokenstream::{self, Delimited, TokenTree, TokenStream};
1818use syntax_pos:: DUMMY_SP ;
1919
2020use std:: iter;
21- use std:: rc:: Rc ;
2221
2322pub fn qquote < ' cx > ( stream : TokenStream ) -> TokenStream {
2423 stream. quote ( )
@@ -50,10 +49,7 @@ macro_rules! quote_tree {
5049}
5150
5251fn delimit ( delim : token:: DelimToken , stream : TokenStream ) -> TokenStream {
53- TokenTree :: Delimited ( DUMMY_SP , Rc :: new ( Delimited {
54- delim : delim,
55- tts : stream. into_trees ( ) . collect ( ) ,
56- } ) ) . into ( )
52+ TokenTree :: Delimited ( DUMMY_SP , Delimited { delim : delim, tts : stream. into ( ) } ) . into ( )
5753}
5854
5955macro_rules! quote {
@@ -102,13 +98,6 @@ impl Quote for TokenStream {
10298 }
10399}
104100
105- impl Quote for Vec < TokenTree > {
106- fn quote ( & self ) -> TokenStream {
107- let stream = self . iter ( ) . cloned ( ) . collect :: < TokenStream > ( ) ;
108- quote ! ( ( quote stream) . into_trees( ) . collect:: <:: std:: vec:: Vec <_> >( ) )
109- }
110- }
111-
112101impl Quote for TokenTree {
113102 fn quote ( & self ) -> TokenStream {
114103 match * self {
@@ -124,12 +113,12 @@ impl Quote for TokenTree {
124113 }
125114}
126115
127- impl Quote for Rc < Delimited > {
116+ impl Quote for Delimited {
128117 fn quote ( & self ) -> TokenStream {
129- quote ! ( :: std :: rc :: Rc :: new ( :: syntax:: tokenstream:: Delimited {
118+ quote ! ( :: syntax:: tokenstream:: Delimited {
130119 delim: ( quote self . delim) ,
131- tts: ( quote self . tts ) ,
132- } ) )
120+ tts: ( quote self . stream ( ) ) . into ( ) ,
121+ } )
133122 }
134123}
135124
0 commit comments