@@ -890,12 +890,12 @@ fn parse_nt_inner<'a>(p: &mut Parser<'a>, sp: Span, name: Symbol) -> PResult<'a,
890
890
Ok ( match name {
891
891
sym:: item => match p. parse_item ( ) ? {
892
892
Some ( i) => token:: NtItem ( i) ,
893
- None => return Err ( p. fatal ( "expected an item keyword" ) ) ,
893
+ None => return Err ( p. struct_span_err ( p . token . span , "expected an item keyword" ) ) ,
894
894
} ,
895
895
sym:: block => token:: NtBlock ( p. parse_block ( ) ?) ,
896
896
sym:: stmt => match p. parse_stmt ( ) ? {
897
897
Some ( s) => token:: NtStmt ( s) ,
898
- None => return Err ( p. fatal ( "expected a statement" ) ) ,
898
+ None => return Err ( p. struct_span_err ( p . token . span , "expected a statement" ) ) ,
899
899
} ,
900
900
sym:: pat => token:: NtPat ( p. parse_pat ( None ) ?) ,
901
901
sym:: expr => token:: NtExpr ( p. parse_expr ( ) ?) ,
@@ -909,7 +909,8 @@ fn parse_nt_inner<'a>(p: &mut Parser<'a>, sp: Span, name: Symbol) -> PResult<'a,
909
909
token:: NtIdent ( Ident :: new ( name, span) , is_raw)
910
910
} else {
911
911
let token_str = pprust:: token_to_string ( & p. token ) ;
912
- return Err ( p. fatal ( & format ! ( "expected ident, found {}" , & token_str) ) ) ;
912
+ let msg = & format ! ( "expected ident, found {}" , & token_str) ;
913
+ return Err ( p. struct_span_err ( p. token . span , msg) ) ;
913
914
}
914
915
}
915
916
sym:: path => token:: NtPath ( p. parse_path ( PathStyle :: Type ) ?) ,
@@ -920,7 +921,8 @@ fn parse_nt_inner<'a>(p: &mut Parser<'a>, sp: Span, name: Symbol) -> PResult<'a,
920
921
token:: NtLifetime ( p. expect_lifetime ( ) . ident )
921
922
} else {
922
923
let token_str = pprust:: token_to_string ( & p. token ) ;
923
- return Err ( p. fatal ( & format ! ( "expected a lifetime, found `{}`" , & token_str) ) ) ;
924
+ let msg = & format ! ( "expected a lifetime, found `{}`" , & token_str) ;
925
+ return Err ( p. struct_span_err ( p. token . span , msg) ) ;
924
926
}
925
927
}
926
928
// this is not supposed to happen, since it has been checked
0 commit comments