@@ -626,8 +626,8 @@ impl<'a> Parser<'a> {
626
626
627
627
fn parse_expr_prefix_common ( & mut self , lo : Span ) -> PResult < ' a , ( Span , P < Expr > ) > {
628
628
self . bump ( ) ;
629
- let expr = self . parse_expr_prefix ( None ) ;
630
- let ( span, expr ) = self . interpolated_or_expr_span ( expr) ? ;
629
+ let expr = self . parse_expr_prefix ( None ) ? ;
630
+ let span = self . interpolated_or_expr_span ( & expr) ;
631
631
Ok ( ( lo. to ( span) , expr) )
632
632
}
633
633
@@ -702,20 +702,12 @@ impl<'a> Parser<'a> {
702
702
self . parse_expr_unary ( lo, UnOp :: Not )
703
703
}
704
704
705
- /// Returns the span of expr, if it was not interpolated or the span of the interpolated token.
706
- fn interpolated_or_expr_span (
707
- & self ,
708
- expr : PResult < ' a , P < Expr > > ,
709
- ) -> PResult < ' a , ( Span , P < Expr > ) > {
710
- expr. map ( |e| {
711
- (
712
- match self . prev_token . kind {
713
- TokenKind :: Interpolated ( ..) => self . prev_token . span ,
714
- _ => e. span ,
715
- } ,
716
- e,
717
- )
718
- } )
705
+ /// Returns the span of expr if it was not interpolated, or the span of the interpolated token.
706
+ fn interpolated_or_expr_span ( & self , expr : & Expr ) -> Span {
707
+ match self . prev_token . kind {
708
+ TokenKind :: Interpolated ( ..) => self . prev_token . span ,
709
+ _ => expr. span ,
710
+ }
719
711
}
720
712
721
713
fn parse_assoc_op_cast (
@@ -898,8 +890,8 @@ impl<'a> Parser<'a> {
898
890
self . parse_expr_prefix_range ( None )
899
891
} else {
900
892
self . parse_expr_prefix ( None )
901
- } ;
902
- let ( hi , expr ) = self . interpolated_or_expr_span ( expr) ? ;
893
+ } ? ;
894
+ let hi = self . interpolated_or_expr_span ( & expr) ;
903
895
let span = lo. to ( hi) ;
904
896
if let Some ( lt) = lifetime {
905
897
self . error_remove_borrow_lifetime ( span, lt. ident . span ) ;
@@ -930,8 +922,8 @@ impl<'a> Parser<'a> {
930
922
fn parse_expr_dot_or_call ( & mut self , attrs : Option < AttrWrapper > ) -> PResult < ' a , P < Expr > > {
931
923
let attrs = self . parse_or_use_outer_attributes ( attrs) ?;
932
924
self . collect_tokens_for_expr ( attrs, |this, attrs| {
933
- let base = this. parse_expr_bottom ( ) ;
934
- let ( span, base ) = this. interpolated_or_expr_span ( base) ? ;
925
+ let base = this. parse_expr_bottom ( ) ? ;
926
+ let span = this. interpolated_or_expr_span ( & base) ;
935
927
this. parse_expr_dot_or_call_with ( base, span, attrs)
936
928
} )
937
929
}
0 commit comments