@@ -1501,32 +1501,35 @@ impl<'a> Parser<'a> {
15011501 match self . token . kind {
15021502 token:: Literal ( token:: Lit { kind : token:: Str , symbol, suffix } ) |
15031503 token:: Literal ( token:: Lit { kind : token:: StrRaw ( ..) , symbol, suffix } ) => {
1504- let sp = self . token . span ;
1505- self . expect_no_suffix ( sp, "an ABI spec" , suffix) ;
1504+ self . expect_no_suffix ( self . token . span , "an ABI spec" , suffix) ;
15061505 self . bump ( ) ;
15071506 match abi:: lookup ( & symbol. as_str ( ) ) {
15081507 Some ( abi) => Ok ( Some ( abi) ) ,
15091508 None => {
1510- let prev_span = self . prev_span ;
1511- struct_span_err ! (
1512- self . sess. span_diagnostic,
1513- prev_span,
1514- E0703 ,
1515- "invalid ABI: found `{}`" ,
1516- symbol
1517- )
1518- . span_label ( prev_span, "invalid ABI" )
1519- . help ( & format ! ( "valid ABIs: {}" , abi:: all_names( ) . join( ", " ) ) )
1520- . emit ( ) ;
1509+ self . error_on_invalid_abi ( symbol) ;
15211510 Ok ( None )
15221511 }
15231512 }
15241513 }
1525-
15261514 _ => Ok ( None ) ,
15271515 }
15281516 }
15291517
1518+ /// Emit an error where `symbol` is an invalid ABI.
1519+ fn error_on_invalid_abi ( & self , symbol : Symbol ) {
1520+ let prev_span = self . prev_span ;
1521+ struct_span_err ! (
1522+ self . sess. span_diagnostic,
1523+ prev_span,
1524+ E0703 ,
1525+ "invalid ABI: found `{}`" ,
1526+ symbol
1527+ )
1528+ . span_label ( prev_span, "invalid ABI" )
1529+ . help ( & format ! ( "valid ABIs: {}" , abi:: all_names( ) . join( ", " ) ) )
1530+ . emit ( ) ;
1531+ }
1532+
15301533 /// We are parsing `async fn`. If we are on Rust 2015, emit an error.
15311534 fn ban_async_in_2015 ( & self , async_span : Span ) {
15321535 if async_span. rust_2015 ( ) {
0 commit comments