File tree 2 files changed +20
-19
lines changed
2 files changed +20
-19
lines changed Original file line number Diff line number Diff line change @@ -614,4 +614,23 @@ impl<'a> Parser<'a> {
614
614
}
615
615
}
616
616
617
+ crate fn expected_expression_found ( & self ) -> DiagnosticBuilder < ' a > {
618
+ let ( span, msg) = match ( & self . token , self . subparser_name ) {
619
+ ( & token:: Token :: Eof , Some ( origin) ) => {
620
+ let sp = self . sess . source_map ( ) . next_point ( self . span ) ;
621
+ ( sp, format ! ( "expected expression, found end of {}" , origin) )
622
+ }
623
+ _ => ( self . span , format ! (
624
+ "expected expression, found {}" ,
625
+ self . this_token_descr( ) ,
626
+ ) ) ,
627
+ } ;
628
+ let mut err = self . struct_span_err ( span, & msg) ;
629
+ let sp = self . sess . source_map ( ) . start_point ( self . span ) ;
630
+ if let Some ( sp) = self . sess . ambiguous_block_expr_parse . borrow ( ) . get ( & sp) {
631
+ self . sess . expr_parentheses_needed ( & mut err, * sp, None ) ;
632
+ }
633
+ err. span_label ( span, "expected expression" ) ;
634
+ err
635
+ }
617
636
}
Original file line number Diff line number Diff line change @@ -2601,25 +2601,7 @@ impl<'a> Parser<'a> {
2601
2601
}
2602
2602
Err ( mut err) => {
2603
2603
self . cancel ( & mut err) ;
2604
- let ( span, msg) = match ( & self . token , self . subparser_name ) {
2605
- ( & token:: Token :: Eof , Some ( origin) ) => {
2606
- let sp = self . sess . source_map ( ) . next_point ( self . span ) ;
2607
- ( sp, format ! ( "expected expression, found end of {}" , origin) )
2608
- }
2609
- _ => ( self . span , format ! (
2610
- "expected expression, found {}" ,
2611
- self . this_token_descr( ) ,
2612
- ) ) ,
2613
- } ;
2614
- let mut err = self . struct_span_err ( span, & msg) ;
2615
- let sp = self . sess . source_map ( ) . start_point ( self . span ) ;
2616
- if let Some ( sp) = self . sess . ambiguous_block_expr_parse . borrow ( )
2617
- . get ( & sp)
2618
- {
2619
- self . sess . expr_parentheses_needed ( & mut err, * sp, None ) ;
2620
- }
2621
- err. span_label ( span, "expected expression" ) ;
2622
- return Err ( err) ;
2604
+ return Err ( self . expected_expression_found ( ) ) ;
2623
2605
}
2624
2606
}
2625
2607
}
You can’t perform that action at this time.
0 commit comments