File tree Expand file tree Collapse file tree 2 files changed +20
-19
lines changed Expand file tree Collapse file tree 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> {
614614 }
615615 }
616616
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+ }
617636}
Original file line number Diff line number Diff line change @@ -2601,25 +2601,7 @@ impl<'a> Parser<'a> {
26012601 }
26022602 Err ( mut err) => {
26032603 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 ( ) ) ;
26232605 }
26242606 }
26252607 }
You can’t perform that action at this time.
0 commit comments