@@ -611,6 +611,7 @@ impl<'a> Parser<'a> {
611611 t if t. is_special_ident ( ) => "reserved identifier" ,
612612 t if t. is_used_keyword ( ) => "keyword" ,
613613 t if t. is_unused_keyword ( ) => "reserved keyword" ,
614+ token:: DocComment ( ..) => "doc comment" ,
614615 _ => return None ,
615616 } )
616617 }
@@ -644,8 +645,8 @@ impl<'a> Parser<'a> {
644645 Ok ( ( ) )
645646 } else {
646647 let token_str = pprust:: token_to_string ( t) ;
647- let this_token_str = self . this_token_to_string ( ) ;
648- let mut err = self . fatal ( & format ! ( "expected `{}`, found `{}` " ,
648+ let this_token_str = self . this_token_descr ( ) ;
649+ let mut err = self . fatal ( & format ! ( "expected `{}`, found {} " ,
649650 token_str,
650651 this_token_str) ) ;
651652
@@ -1444,17 +1445,17 @@ impl<'a> Parser<'a> {
14441445 Some ( body)
14451446 }
14461447 _ => {
1447- let token_str = self . this_token_to_string ( ) ;
1448- let mut err = self . fatal ( & format ! ( "expected `;` or `{{`, found `{}` " ,
1448+ let token_str = self . this_token_descr ( ) ;
1449+ let mut err = self . fatal ( & format ! ( "expected `;` or `{{`, found {} " ,
14491450 token_str) ) ;
14501451 err. span_label ( self . span , "expected `;` or `{`" ) ;
14511452 return Err ( err) ;
14521453 }
14531454 }
14541455 }
14551456 _ => {
1456- let token_str = self . this_token_to_string ( ) ;
1457- let mut err = self . fatal ( & format ! ( "expected `;` or `{{`, found `{}` " ,
1457+ let token_str = self . this_token_descr ( ) ;
1458+ let mut err = self . fatal ( & format ! ( "expected `;` or `{{`, found {} " ,
14581459 token_str) ) ;
14591460 err. span_label ( self . span , "expected `;` or `{`" ) ;
14601461 return Err ( err) ;
@@ -3917,8 +3918,8 @@ impl<'a> Parser<'a> {
39173918 etc_span = Some ( etc_sp) ;
39183919 break ;
39193920 }
3920- let token_str = self . this_token_to_string ( ) ;
3921- let mut err = self . fatal ( & format ! ( "expected `}}`, found `{}` " , token_str) ) ;
3921+ let token_str = self . this_token_descr ( ) ;
3922+ let mut err = self . fatal ( & format ! ( "expected `}}`, found {} " , token_str) ) ;
39223923
39233924 err. span_label ( self . span , "expected `}`" ) ;
39243925 let mut comma_sp = None ;
@@ -4680,8 +4681,8 @@ impl<'a> Parser<'a> {
46804681 } else {
46814682 ""
46824683 } ;
4683- let tok_str = self . this_token_to_string ( ) ;
4684- let mut err = self . fatal ( & format ! ( "expected {}`(` or `{{`, found `{}` " ,
4684+ let tok_str = self . this_token_descr ( ) ;
4685+ let mut err = self . fatal ( & format ! ( "expected {}`(` or `{{`, found {} " ,
46854686 ident_str,
46864687 tok_str) ) ;
46874688 err. span_label ( self . span , format ! ( "expected {}`(` or `{{`" , ident_str) ) ;
@@ -4817,8 +4818,8 @@ impl<'a> Parser<'a> {
48174818
48184819 if !self . eat ( & token:: OpenDelim ( token:: Brace ) ) {
48194820 let sp = self . span ;
4820- let tok = self . this_token_to_string ( ) ;
4821- let mut e = self . span_fatal ( sp, & format ! ( "expected `{{`, found `{}` " , tok) ) ;
4821+ let tok = self . this_token_descr ( ) ;
4822+ let mut e = self . span_fatal ( sp, & format ! ( "expected `{{`, found {} " , tok) ) ;
48224823 let do_not_suggest_help =
48234824 self . token . is_keyword ( keywords:: In ) || self . token == token:: Colon ;
48244825
@@ -4880,6 +4881,7 @@ impl<'a> Parser<'a> {
48804881 }
48814882 _ => ( )
48824883 }
4884+ e. span_label ( sp, "expected `{`" ) ;
48834885 return Err ( e) ;
48844886 }
48854887
@@ -4975,7 +4977,7 @@ impl<'a> Parser<'a> {
49754977
49764978 fn warn_missing_semicolon ( & self ) {
49774979 self . diagnostic ( ) . struct_span_warn ( self . span , {
4978- & format ! ( "expected `;`, found `{}` " , self . this_token_to_string ( ) )
4980+ & format ! ( "expected `;`, found {} " , self . this_token_descr ( ) )
49794981 } ) . note ( {
49804982 "This was erroneously allowed and will become a hard error in a future release"
49814983 } ) . emit ( ) ;
@@ -6014,9 +6016,9 @@ impl<'a> Parser<'a> {
60146016 self . expect ( & token:: Semi ) ?;
60156017 body
60166018 } else {
6017- let token_str = self . this_token_to_string ( ) ;
6019+ let token_str = self . this_token_descr ( ) ;
60186020 let mut err = self . fatal ( & format ! (
6019- "expected `where`, `{{`, `(`, or `;` after struct name, found `{}` " ,
6021+ "expected `where`, `{{`, `(`, or `;` after struct name, found {} " ,
60206022 token_str
60216023 ) ) ;
60226024 err. span_label ( self . span , "expected `where`, `{`, `(`, or `;` after struct name" ) ;
@@ -6038,9 +6040,9 @@ impl<'a> Parser<'a> {
60386040 } else if self . token == token:: OpenDelim ( token:: Brace ) {
60396041 VariantData :: Struct ( self . parse_record_struct_body ( ) ?, ast:: DUMMY_NODE_ID )
60406042 } else {
6041- let token_str = self . this_token_to_string ( ) ;
6043+ let token_str = self . this_token_descr ( ) ;
60426044 let mut err = self . fatal ( & format ! (
6043- "expected `where` or `{{` after union name, found `{}` " , token_str) ) ;
6045+ "expected `where` or `{{` after union name, found {} " , token_str) ) ;
60446046 err. span_label ( self . span , "expected `where` or `{` after union name" ) ;
60456047 return Err ( err) ;
60466048 } ;
@@ -6088,9 +6090,9 @@ impl<'a> Parser<'a> {
60886090 }
60896091 self . eat ( & token:: CloseDelim ( token:: Brace ) ) ;
60906092 } else {
6091- let token_str = self . this_token_to_string ( ) ;
6093+ let token_str = self . this_token_descr ( ) ;
60926094 let mut err = self . fatal ( & format ! (
6093- "expected `where`, or `{{` after struct name, found `{}` " , token_str) ) ;
6095+ "expected `where`, or `{{` after struct name, found {} " , token_str) ) ;
60946096 err. span_label ( self . span , "expected `where`, or `{` after struct name" ) ;
60956097 return Err ( err) ;
60966098 }
@@ -6166,8 +6168,8 @@ impl<'a> Parser<'a> {
61666168 }
61676169 _ => {
61686170 let sp = self . sess . source_map ( ) . next_point ( self . prev_span ) ;
6169- let mut err = self . struct_span_err ( sp, & format ! ( "expected `,`, or `}}`, found `{}` " ,
6170- self . this_token_to_string ( ) ) ) ;
6171+ let mut err = self . struct_span_err ( sp, & format ! ( "expected `,`, or `}}`, found {} " ,
6172+ self . this_token_descr ( ) ) ) ;
61716173 if self . token . is_ident ( ) {
61726174 // This is likely another field; emit the diagnostic and keep going
61736175 err. span_suggestion_with_applicability (
@@ -6303,9 +6305,9 @@ impl<'a> Parser<'a> {
63036305 }
63046306
63056307 if !self . eat ( term) {
6306- let token_str = self . this_token_to_string ( ) ;
6307- let mut err = self . fatal ( & format ! ( "expected item, found `{}` " , token_str) ) ;
6308- if token_str == ";" {
6308+ let token_str = self . this_token_descr ( ) ;
6309+ let mut err = self . fatal ( & format ! ( "expected item, found {} " , token_str) ) ;
6310+ if self . token == token :: Semi {
63096311 let msg = "consider removing this semicolon" ;
63106312 err. span_suggestion_short_with_applicability (
63116313 self . span , msg, String :: new ( ) , Applicability :: MachineApplicable
0 commit comments