@@ -891,7 +891,7 @@ impl<'a> Parser<'a> {
891
891
892
892
self . parse_seq_to_before_tokens ( kets,
893
893
SeqSep :: none ( ) ,
894
- |p| p. parse_token_tree ( ) ,
894
+ |p| Ok ( p. parse_token_tree ( ) ) ,
895
895
|mut e| handler. cancel ( & mut e) ) ;
896
896
}
897
897
@@ -1267,7 +1267,7 @@ impl<'a> Parser<'a> {
1267
1267
break ;
1268
1268
}
1269
1269
token:: OpenDelim ( token:: Brace ) => {
1270
- self . parse_token_tree ( ) ? ;
1270
+ self . parse_token_tree ( ) ;
1271
1271
break ;
1272
1272
}
1273
1273
_ => self . bump ( ) ,
@@ -2101,10 +2101,10 @@ impl<'a> Parser<'a> {
2101
2101
2102
2102
fn expect_delimited_token_tree ( & mut self ) -> PResult < ' a , ( token:: DelimToken , ThinTokenStream ) > {
2103
2103
match self . token {
2104
- token:: OpenDelim ( delim) => self . parse_token_tree ( ) . map ( |tree| match tree {
2105
- TokenTree :: Delimited ( _, delimited) => ( delim, delimited. stream ( ) . into ( ) ) ,
2104
+ token:: OpenDelim ( delim) => match self . parse_token_tree ( ) {
2105
+ TokenTree :: Delimited ( _, delimited) => Ok ( ( delim, delimited. stream ( ) . into ( ) ) ) ,
2106
2106
_ => unreachable ! ( ) ,
2107
- } ) ,
2107
+ } ,
2108
2108
_ => Err ( self . fatal ( "expected open delimiter" ) ) ,
2109
2109
}
2110
2110
}
@@ -2643,24 +2643,23 @@ impl<'a> Parser<'a> {
2643
2643
}
2644
2644
2645
2645
/// parse a single token tree from the input.
2646
- pub fn parse_token_tree ( & mut self ) -> PResult < ' a , TokenTree > {
2646
+ pub fn parse_token_tree ( & mut self ) -> TokenTree {
2647
2647
match self . token {
2648
2648
token:: OpenDelim ( ..) => {
2649
2649
let frame = mem:: replace ( & mut self . token_cursor . frame ,
2650
2650
self . token_cursor . stack . pop ( ) . unwrap ( ) ) ;
2651
2651
self . span = frame. span ;
2652
2652
self . bump ( ) ;
2653
- return Ok ( TokenTree :: Delimited ( frame. span , Delimited {
2653
+ TokenTree :: Delimited ( frame. span , Delimited {
2654
2654
delim : frame. delim ,
2655
2655
tts : frame. tree_cursor . original_stream ( ) . into ( ) ,
2656
- } ) ) ;
2656
+ } )
2657
2657
} ,
2658
2658
token:: CloseDelim ( _) | token:: Eof => unreachable ! ( ) ,
2659
2659
_ => {
2660
2660
let token = mem:: replace ( & mut self . token , token:: Underscore ) ;
2661
- let res = Ok ( TokenTree :: Token ( self . span , token) ) ;
2662
2661
self . bump ( ) ;
2663
- res
2662
+ TokenTree :: Token ( self . prev_span , token )
2664
2663
}
2665
2664
}
2666
2665
}
@@ -2670,7 +2669,7 @@ impl<'a> Parser<'a> {
2670
2669
pub fn parse_all_token_trees ( & mut self ) -> PResult < ' a , Vec < TokenTree > > {
2671
2670
let mut tts = Vec :: new ( ) ;
2672
2671
while self . token != token:: Eof {
2673
- tts. push ( self . parse_token_tree ( ) ? ) ;
2672
+ tts. push ( self . parse_token_tree ( ) ) ;
2674
2673
}
2675
2674
Ok ( tts)
2676
2675
}
0 commit comments