@@ -204,7 +204,9 @@ impl<'hir> LoweringContext<'_, 'hir> {
204
204
MatchKind :: Postfix => hir:: MatchSource :: Postfix ,
205
205
} ,
206
206
) ,
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
+ }
208
210
ExprKind :: Use ( expr, use_kw_span) => self . lower_expr_use ( * use_kw_span, expr) ,
209
211
ExprKind :: Closure ( box Closure {
210
212
binder,
@@ -816,20 +818,24 @@ impl<'hir> LoweringContext<'_, 'hir> {
816
818
/// }
817
819
/// }
818
820
/// ```
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 > {
820
827
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 )
822
829
}
823
830
824
831
/// Takes an expr that has already been lowered and generates a desugared await loop around it
825
832
fn make_lowered_await (
826
833
& mut self ,
827
834
await_kw_span : Span ,
835
+ full_span : Span ,
828
836
expr : & ' hir hir:: Expr < ' hir > ,
829
837
await_kind : FutureKind ,
830
838
) -> hir:: ExprKind < ' hir > {
831
- let full_span = expr. span . to ( await_kw_span) ;
832
-
833
839
let is_async_gen = match self . coroutine_kind {
834
840
Some ( hir:: CoroutineKind :: Desugared ( hir:: CoroutineDesugaring :: Async , _) ) => false ,
835
841
Some ( hir:: CoroutineKind :: Desugared ( hir:: CoroutineDesugaring :: AsyncGen , _) ) => true ,
@@ -1794,7 +1800,12 @@ impl<'hir> LoweringContext<'_, 'hir> {
1794
1800
) ) ;
1795
1801
// `unsafe { ... }`
1796
1802
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
+ ) ;
1798
1809
self . arena . alloc ( hir:: Expr { hir_id : self . next_id ( ) , kind, span : head_span } )
1799
1810
}
1800
1811
} ;
0 commit comments