@@ -41,7 +41,7 @@ pub enum TokenTree {
4141 /// A single token
4242 Token ( Span , token:: Token ) ,
4343 /// A delimited sequence of token trees
44- Delimited ( DelimSpan , DelimToken , ThinTokenStream ) ,
44+ Delimited ( DelimSpan , DelimToken , TokenStream ) ,
4545}
4646
4747impl TokenTree {
@@ -62,8 +62,7 @@ impl TokenTree {
6262 ( & TokenTree :: Token ( _, ref tk) , & TokenTree :: Token ( _, ref tk2) ) => tk == tk2,
6363 ( & TokenTree :: Delimited ( _, delim, ref tts) ,
6464 & TokenTree :: Delimited ( _, delim2, ref tts2) ) => {
65- delim == delim2 &&
66- tts. stream ( ) . eq_unspanned ( & tts2. stream ( ) )
65+ delim == delim2 && tts. eq_unspanned ( & tts2)
6766 }
6867 ( _, _) => false ,
6968 }
@@ -81,8 +80,7 @@ impl TokenTree {
8180 }
8281 ( & TokenTree :: Delimited ( _, delim, ref tts) ,
8382 & TokenTree :: Delimited ( _, delim2, ref tts2) ) => {
84- delim == delim2 &&
85- tts. stream ( ) . probably_equal_for_proc_macro ( & tts2. stream ( ) )
83+ delim == delim2 && tts. probably_equal_for_proc_macro ( & tts2)
8684 }
8785 ( _, _) => false ,
8886 }
@@ -492,41 +490,6 @@ impl Cursor {
492490 }
493491}
494492
495- /// The `TokenStream` type is large enough to represent a single `TokenTree` without allocation.
496- /// `ThinTokenStream` is smaller, but needs to allocate to represent a single `TokenTree`.
497- /// We must use `ThinTokenStream` in `TokenTree::Delimited` to avoid infinite size due to recursion.
498- #[ derive( Debug , Clone ) ]
499- pub struct ThinTokenStream ( Option < Lrc < Vec < TreeAndJoint > > > ) ;
500-
501- impl ThinTokenStream {
502- pub fn stream ( & self ) -> TokenStream {
503- self . clone ( ) . into ( )
504- }
505- }
506-
507- impl From < TokenStream > for ThinTokenStream {
508- fn from ( stream : TokenStream ) -> ThinTokenStream {
509- ThinTokenStream ( match stream {
510- TokenStream :: Empty => None ,
511- TokenStream :: Stream ( stream) => Some ( stream) ,
512- } )
513- }
514- }
515-
516- impl From < ThinTokenStream > for TokenStream {
517- fn from ( stream : ThinTokenStream ) -> TokenStream {
518- stream. 0 . map ( TokenStream :: Stream ) . unwrap_or_else ( TokenStream :: empty)
519- }
520- }
521-
522- impl Eq for ThinTokenStream { }
523-
524- impl PartialEq < ThinTokenStream > for ThinTokenStream {
525- fn eq ( & self , other : & ThinTokenStream ) -> bool {
526- TokenStream :: from ( self . clone ( ) ) == TokenStream :: from ( other. clone ( ) )
527- }
528- }
529-
530493impl fmt:: Display for TokenStream {
531494 fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
532495 f. write_str ( & pprust:: tokens_to_string ( self . clone ( ) ) )
@@ -545,18 +508,6 @@ impl Decodable for TokenStream {
545508 }
546509}
547510
548- impl Encodable for ThinTokenStream {
549- fn encode < E : Encoder > ( & self , encoder : & mut E ) -> Result < ( ) , E :: Error > {
550- TokenStream :: from ( self . clone ( ) ) . encode ( encoder)
551- }
552- }
553-
554- impl Decodable for ThinTokenStream {
555- fn decode < D : Decoder > ( decoder : & mut D ) -> Result < ThinTokenStream , D :: Error > {
556- TokenStream :: decode ( decoder) . map ( Into :: into)
557- }
558- }
559-
560511#[ derive( Debug , Copy , Clone , PartialEq , RustcEncodable , RustcDecodable ) ]
561512pub struct DelimSpan {
562513 pub open : Span ,
0 commit comments