@@ -808,10 +808,12 @@ impl<'a> Parser<'a> {
808
808
/// Eat and discard tokens until one of `kets` is encountered. Respects token trees,
809
809
/// passes through any errors encountered. Used for error recovery.
810
810
pub fn eat_to_tokens ( & mut self , kets : & [ & token:: Token ] ) {
811
+ let handler = self . diagnostic ( ) ;
812
+
811
813
self . parse_seq_to_before_tokens ( kets,
812
814
SeqSep :: none ( ) ,
813
815
|p| p. parse_token_tree ( ) ,
814
- |mut e| e . cancel ( ) ) ;
816
+ |mut e| handler . cancel ( & mut e ) ) ;
815
817
}
816
818
817
819
/// Parse a sequence, including the closing delimiter. The function
@@ -1040,6 +1042,10 @@ impl<'a> Parser<'a> {
1040
1042
self . sess . span_diagnostic . abort_if_errors ( ) ;
1041
1043
}
1042
1044
1045
+ fn cancel ( & self , err : & mut DiagnosticBuilder ) {
1046
+ self . sess . span_diagnostic . cancel ( err)
1047
+ }
1048
+
1043
1049
pub fn diagnostic ( & self ) -> & ' a errors:: Handler {
1044
1050
& self . sess . span_diagnostic
1045
1051
}
@@ -2386,7 +2392,7 @@ impl<'a> Parser<'a> {
2386
2392
ex = ExprKind :: Lit ( P ( lit) ) ;
2387
2393
}
2388
2394
Err ( mut err) => {
2389
- err . cancel ( ) ;
2395
+ self . cancel ( & mut err ) ;
2390
2396
let msg = format ! ( "expected expression, found {}" ,
2391
2397
self . this_token_descr( ) ) ;
2392
2398
return Err ( self . fatal ( & msg) ) ;
@@ -3702,7 +3708,7 @@ impl<'a> Parser<'a> {
3702
3708
}
3703
3709
}
3704
3710
Err ( mut err) => {
3705
- err . cancel ( ) ;
3711
+ self . cancel ( & mut err ) ;
3706
3712
let msg = format ! ( "expected pattern, found {}" , self . this_token_descr( ) ) ;
3707
3713
return Err ( self . fatal ( & msg) ) ;
3708
3714
}
@@ -4076,7 +4082,7 @@ impl<'a> Parser<'a> {
4076
4082
}
4077
4083
Err ( mut e) => {
4078
4084
self . recover_stmt_ ( SemiColonMode :: Break ) ;
4079
- e . cancel ( ) ;
4085
+ self . cancel ( & mut e ) ;
4080
4086
}
4081
4087
_ => ( )
4082
4088
}
@@ -4317,7 +4323,7 @@ impl<'a> Parser<'a> {
4317
4323
let span_hi = match self . parse_ty ( ) {
4318
4324
Ok ( ..) => self . span . hi ,
4319
4325
Err ( ref mut err) => {
4320
- err . cancel ( ) ;
4326
+ self . cancel ( err ) ;
4321
4327
span_hi
4322
4328
}
4323
4329
} ;
0 commit comments