@@ -204,7 +204,9 @@ impl<'hir> LoweringContext<'_, 'hir> {
204204 MatchKind :: Postfix => hir:: MatchSource :: Postfix ,
205205 } ,
206206 ) ,
207- ExprKind :: Await ( expr, await_kw_span) => self . lower_expr_await ( * await_kw_span, expr) ,
207+ ExprKind :: Await ( expr, await_kw_span) => {
208+ self . lower_expr_await ( * await_kw_span, e. span , expr)
209+ }
208210 ExprKind :: Use ( expr, use_kw_span) => self . lower_expr_use ( * use_kw_span, expr) ,
209211 ExprKind :: Closure ( box Closure {
210212 binder,
@@ -816,20 +818,24 @@ impl<'hir> LoweringContext<'_, 'hir> {
816818 /// }
817819 /// }
818820 /// ```
819- fn lower_expr_await ( & mut self , await_kw_span : Span , expr : & Expr ) -> hir:: ExprKind < ' hir > {
821+ fn lower_expr_await (
822+ & mut self ,
823+ await_kw_span : Span ,
824+ full_span : Span ,
825+ expr : & Expr ,
826+ ) -> hir:: ExprKind < ' hir > {
820827 let expr = self . arena . alloc ( self . lower_expr_mut ( expr) ) ;
821- self . make_lowered_await ( await_kw_span, expr, FutureKind :: Future )
828+ self . make_lowered_await ( await_kw_span, full_span , expr, FutureKind :: Future )
822829 }
823830
824831 /// Takes an expr that has already been lowered and generates a desugared await loop around it
825832 fn make_lowered_await (
826833 & mut self ,
827834 await_kw_span : Span ,
835+ full_span : Span ,
828836 expr : & ' hir hir:: Expr < ' hir > ,
829837 await_kind : FutureKind ,
830838 ) -> hir:: ExprKind < ' hir > {
831- let full_span = expr. span . to ( await_kw_span) ;
832-
833839 let is_async_gen = match self . coroutine_kind {
834840 Some ( hir:: CoroutineKind :: Desugared ( hir:: CoroutineDesugaring :: Async , _) ) => false ,
835841 Some ( hir:: CoroutineKind :: Desugared ( hir:: CoroutineDesugaring :: AsyncGen , _) ) => true ,
@@ -1794,7 +1800,12 @@ impl<'hir> LoweringContext<'_, 'hir> {
17941800 ) ) ;
17951801 // `unsafe { ... }`
17961802 let iter = self . arena . alloc ( self . expr_unsafe ( iter) ) ;
1797- let kind = self . make_lowered_await ( head_span, iter, FutureKind :: AsyncIterator ) ;
1803+ let kind = self . make_lowered_await (
1804+ head_span,
1805+ head_span,
1806+ iter,
1807+ FutureKind :: AsyncIterator ,
1808+ ) ;
17981809 self . arena . alloc ( hir:: Expr { hir_id : self . next_id ( ) , kind, span : head_span } )
17991810 }
18001811 } ;
0 commit comments