@@ -626,8 +626,8 @@ impl<'a> Parser<'a> {
626626
627627 fn parse_expr_prefix_common ( & mut self , lo : Span ) -> PResult < ' a , ( Span , P < Expr > ) > {
628628 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) ;
631631 Ok ( ( lo. to ( span) , expr) )
632632 }
633633
@@ -702,20 +702,12 @@ impl<'a> Parser<'a> {
702702 self . parse_expr_unary ( lo, UnOp :: Not )
703703 }
704704
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+ }
719711 }
720712
721713 fn parse_assoc_op_cast (
@@ -898,8 +890,8 @@ impl<'a> Parser<'a> {
898890 self . parse_expr_prefix_range ( None )
899891 } else {
900892 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) ;
903895 let span = lo. to ( hi) ;
904896 if let Some ( lt) = lifetime {
905897 self . error_remove_borrow_lifetime ( span, lt. ident . span ) ;
@@ -930,8 +922,8 @@ impl<'a> Parser<'a> {
930922 fn parse_expr_dot_or_call ( & mut self , attrs : Option < AttrWrapper > ) -> PResult < ' a , P < Expr > > {
931923 let attrs = self . parse_or_use_outer_attributes ( attrs) ?;
932924 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) ;
935927 this. parse_expr_dot_or_call_with ( base, span, attrs)
936928 } )
937929 }
0 commit comments