@@ -2702,7 +2702,10 @@ impl<'a> Parser<'a> {
2702
2702
return Ok ( TokenTree :: Token ( sp, SpecialVarNt ( SpecialMacroVar :: CrateMacroVar ) ) ) ;
2703
2703
} else {
2704
2704
sp = mk_sp ( sp. lo , self . span . hi ) ;
2705
- self . parse_ident ( ) ?
2705
+ self . parse_ident ( ) . unwrap_or_else ( |mut e| {
2706
+ e. emit ( ) ;
2707
+ keywords:: Invalid . ident ( )
2708
+ } )
2706
2709
}
2707
2710
}
2708
2711
token:: SubstNt ( name) => {
@@ -2807,14 +2810,14 @@ impl<'a> Parser<'a> {
2807
2810
let span = Span { hi : close_span. hi , ..pre_span } ;
2808
2811
2809
2812
match self . token {
2810
- // Correct delmiter .
2813
+ // Correct delimiter .
2811
2814
token:: CloseDelim ( d) if d == delim => {
2812
2815
self . open_braces . pop ( ) . unwrap ( ) ;
2813
2816
2814
2817
// Parse the close delimiter.
2815
2818
self . bump ( ) ;
2816
2819
}
2817
- // Incorect delimiter.
2820
+ // Incorrect delimiter.
2818
2821
token:: CloseDelim ( other) => {
2819
2822
let token_str = self . this_token_to_string ( ) ;
2820
2823
let mut err = self . diagnostic ( ) . struct_span_err ( self . span ,
@@ -2829,9 +2832,9 @@ impl<'a> Parser<'a> {
2829
2832
2830
2833
self . open_braces . pop ( ) . unwrap ( ) ;
2831
2834
2832
- // If the incorrect delimter matches an earlier opening
2835
+ // If the incorrect delimiter matches an earlier opening
2833
2836
// delimiter, then don't consume it (it can be used to
2834
- // close the earlier one)Otherwise, consume it.
2837
+ // close the earlier one). Otherwise, consume it.
2835
2838
// E.g., we try to recover from:
2836
2839
// fn foo() {
2837
2840
// bar(baz(
@@ -2845,7 +2848,7 @@ impl<'a> Parser<'a> {
2845
2848
// and an error emitted then. Thus we don't pop from
2846
2849
// self.open_braces here.
2847
2850
} ,
2848
- _ => unreachable ! ( ) ,
2851
+ _ => { }
2849
2852
}
2850
2853
2851
2854
Ok ( TokenTree :: Delimited ( span, Rc :: new ( Delimited {
@@ -2859,7 +2862,7 @@ impl<'a> Parser<'a> {
2859
2862
// invariants: the current token is not a left-delimiter,
2860
2863
// not an EOF, and not the desired right-delimiter (if
2861
2864
// it were, parse_seq_to_before_end would have prevented
2862
- // reaching this point.
2865
+ // reaching this point) .
2863
2866
maybe_whole ! ( deref self , NtTT ) ;
2864
2867
match self . token {
2865
2868
token:: CloseDelim ( _) => {
0 commit comments