@@ -625,18 +625,18 @@ impl<'hir> LoweringContext<'_, 'hir> {
625
625
/// }
626
626
/// }
627
627
/// ```
628
- fn lower_expr_await ( & mut self , await_span : Span , expr : & Expr ) -> hir:: ExprKind < ' hir > {
629
- let dot_await_span = expr. span . shrink_to_hi ( ) . to ( await_span ) ;
628
+ fn lower_expr_await ( & mut self , dot_await_span : Span , expr : & Expr ) -> hir:: ExprKind < ' hir > {
629
+ let full_span = expr. span . to ( dot_await_span ) ;
630
630
match self . generator_kind {
631
631
Some ( hir:: GeneratorKind :: Async ( _) ) => { }
632
632
Some ( hir:: GeneratorKind :: Gen ) | None => {
633
633
let mut err = struct_span_err ! (
634
634
self . sess,
635
- await_span ,
635
+ dot_await_span ,
636
636
E0728 ,
637
637
"`await` is only allowed inside `async` functions and blocks"
638
638
) ;
639
- err. span_label ( await_span , "only allowed inside `async` functions and blocks" ) ;
639
+ err. span_label ( dot_await_span , "only allowed inside `async` functions and blocks" ) ;
640
640
if let Some ( item_sp) = self . current_item {
641
641
err. span_label ( item_sp, "this is not `async`" ) ;
642
642
}
@@ -646,7 +646,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
646
646
let span = self . mark_span_with_reason ( DesugaringKind :: Await , dot_await_span, None ) ;
647
647
let gen_future_span = self . mark_span_with_reason (
648
648
DesugaringKind :: Await ,
649
- await_span ,
649
+ full_span ,
650
650
self . allow_gen_future . clone ( ) ,
651
651
) ;
652
652
let expr = self . lower_expr_mut ( expr) ;
@@ -699,9 +699,9 @@ impl<'hir> LoweringContext<'_, 'hir> {
699
699
let loop_hir_id = self . lower_node_id ( loop_node_id) ;
700
700
let ready_arm = {
701
701
let x_ident = Ident :: with_dummy_span ( sym:: result) ;
702
- let ( x_pat, x_pat_hid) = self . pat_ident ( span , x_ident) ;
703
- let x_expr = self . expr_ident ( span , x_ident, x_pat_hid) ;
704
- let ready_field = self . single_pat_field ( span , x_pat) ;
702
+ let ( x_pat, x_pat_hid) = self . pat_ident ( gen_future_span , x_ident) ;
703
+ let x_expr = self . expr_ident ( gen_future_span , x_ident, x_pat_hid) ;
704
+ let ready_field = self . single_pat_field ( gen_future_span , x_pat) ;
705
705
let ready_pat = self . pat_lang_item_variant (
706
706
span,
707
707
hir:: LangItem :: PollReady ,
@@ -711,7 +711,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
711
711
let break_x = self . with_loop_scope ( loop_node_id, move |this| {
712
712
let expr_break =
713
713
hir:: ExprKind :: Break ( this. lower_loop_destination ( None ) , Some ( x_expr) ) ;
714
- this. arena . alloc ( this. expr ( span , expr_break, ThinVec :: new ( ) ) )
714
+ this. arena . alloc ( this. expr ( gen_future_span , expr_break, ThinVec :: new ( ) ) )
715
715
} ) ;
716
716
self . arm ( ready_pat, break_x)
717
717
} ;
@@ -783,7 +783,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
783
783
// `match ::std::future::IntoFuture::into_future(<expr>) { ... }`
784
784
let into_future_span = self . mark_span_with_reason (
785
785
DesugaringKind :: Await ,
786
- await_span ,
786
+ dot_await_span ,
787
787
self . allow_into_future . clone ( ) ,
788
788
) ;
789
789
let into_future_expr = self . expr_call_lang_item_fn (
0 commit comments