@@ -1501,32 +1501,35 @@ impl<'a> Parser<'a> {
1501
1501
match self . token . kind {
1502
1502
token:: Literal ( token:: Lit { kind : token:: Str , symbol, suffix } ) |
1503
1503
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) ;
1506
1505
self . bump ( ) ;
1507
1506
match abi:: lookup ( & symbol. as_str ( ) ) {
1508
1507
Some ( abi) => Ok ( Some ( abi) ) ,
1509
1508
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) ;
1521
1510
Ok ( None )
1522
1511
}
1523
1512
}
1524
1513
}
1525
-
1526
1514
_ => Ok ( None ) ,
1527
1515
}
1528
1516
}
1529
1517
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
+
1530
1533
/// We are parsing `async fn`. If we are on Rust 2015, emit an error.
1531
1534
fn ban_async_in_2015 ( & self , async_span : Span ) {
1532
1535
if async_span. rust_2015 ( ) {
0 commit comments