@@ -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
}
@@ -2416,7 +2422,7 @@ impl<'a> Parser<'a> {
2416
2422
ex = ExprKind :: Lit ( P ( lit) ) ;
2417
2423
}
2418
2424
Err ( mut err) => {
2419
- err . cancel ( ) ;
2425
+ self . cancel ( & mut err ) ;
2420
2426
let msg = format ! ( "expected expression, found {}" ,
2421
2427
self . this_token_descr( ) ) ;
2422
2428
return Err ( self . fatal ( & msg) ) ;
@@ -3732,7 +3738,7 @@ impl<'a> Parser<'a> {
3732
3738
}
3733
3739
}
3734
3740
Err ( mut err) => {
3735
- err . cancel ( ) ;
3741
+ self . cancel ( & mut err ) ;
3736
3742
let msg = format ! ( "expected pattern, found {}" , self . this_token_descr( ) ) ;
3737
3743
return Err ( self . fatal ( & msg) ) ;
3738
3744
}
@@ -4106,7 +4112,7 @@ impl<'a> Parser<'a> {
4106
4112
}
4107
4113
Err ( mut e) => {
4108
4114
self . recover_stmt_ ( SemiColonMode :: Break ) ;
4109
- e . cancel ( ) ;
4115
+ self . cancel ( & mut e ) ;
4110
4116
}
4111
4117
_ => ( )
4112
4118
}
@@ -4347,7 +4353,7 @@ impl<'a> Parser<'a> {
4347
4353
let span_hi = match self . parse_ty ( ) {
4348
4354
Ok ( ..) => self . span . hi ,
4349
4355
Err ( ref mut err) => {
4350
- err . cancel ( ) ;
4356
+ self . cancel ( err ) ;
4351
4357
span_hi
4352
4358
}
4353
4359
} ;
0 commit comments