@@ -890,12 +890,12 @@ fn parse_nt_inner<'a>(p: &mut Parser<'a>, sp: Span, name: Symbol) -> PResult<'a,
890890 Ok ( match name {
891891 sym:: item => match p. parse_item ( ) ? {
892892 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" ) ) ,
894894 } ,
895895 sym:: block => token:: NtBlock ( p. parse_block ( ) ?) ,
896896 sym:: stmt => match p. parse_stmt ( ) ? {
897897 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" ) ) ,
899899 } ,
900900 sym:: pat => token:: NtPat ( p. parse_pat ( None ) ?) ,
901901 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,
909909 token:: NtIdent ( Ident :: new ( name, span) , is_raw)
910910 } else {
911911 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) ) ;
913914 }
914915 }
915916 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,
920921 token:: NtLifetime ( p. expect_lifetime ( ) . ident )
921922 } else {
922923 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) ) ;
924926 }
925927 }
926928 // this is not supposed to happen, since it has been checked
0 commit comments