@@ -630,18 +630,18 @@ impl<'hir> LoweringContext<'_, 'hir> {
630
630
/// }
631
631
/// }
632
632
/// ```
633
- fn lower_expr_await ( & mut self , await_span : Span , expr : & Expr ) -> hir:: ExprKind < ' hir > {
634
- let dot_await_span = expr. span . shrink_to_hi ( ) . to ( await_span ) ;
633
+ fn lower_expr_await ( & mut self , dot_await_span : Span , expr : & Expr ) -> hir:: ExprKind < ' hir > {
634
+ let full_span = expr. span . to ( dot_await_span ) ;
635
635
match self . generator_kind {
636
636
Some ( hir:: GeneratorKind :: Async ( _) ) => { }
637
637
Some ( hir:: GeneratorKind :: Gen ) | None => {
638
638
let mut err = struct_span_err ! (
639
639
self . sess,
640
- await_span ,
640
+ dot_await_span ,
641
641
E0728 ,
642
642
"`await` is only allowed inside `async` functions and blocks"
643
643
) ;
644
- err. span_label ( await_span , "only allowed inside `async` functions and blocks" ) ;
644
+ err. span_label ( dot_await_span , "only allowed inside `async` functions and blocks" ) ;
645
645
if let Some ( item_sp) = self . current_item {
646
646
err. span_label ( item_sp, "this is not `async`" ) ;
647
647
}
@@ -651,7 +651,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
651
651
let span = self . mark_span_with_reason ( DesugaringKind :: Await , dot_await_span, None ) ;
652
652
let gen_future_span = self . mark_span_with_reason (
653
653
DesugaringKind :: Await ,
654
- await_span ,
654
+ full_span ,
655
655
self . allow_gen_future . clone ( ) ,
656
656
) ;
657
657
let expr = self . lower_expr_mut ( expr) ;
@@ -704,9 +704,9 @@ impl<'hir> LoweringContext<'_, 'hir> {
704
704
let loop_hir_id = self . lower_node_id ( loop_node_id) ;
705
705
let ready_arm = {
706
706
let x_ident = Ident :: with_dummy_span ( sym:: result) ;
707
- let ( x_pat, x_pat_hid) = self . pat_ident ( span , x_ident) ;
708
- let x_expr = self . expr_ident ( span , x_ident, x_pat_hid) ;
709
- let ready_field = self . single_pat_field ( span , x_pat) ;
707
+ let ( x_pat, x_pat_hid) = self . pat_ident ( gen_future_span , x_ident) ;
708
+ let x_expr = self . expr_ident ( gen_future_span , x_ident, x_pat_hid) ;
709
+ let ready_field = self . single_pat_field ( gen_future_span , x_pat) ;
710
710
let ready_pat = self . pat_lang_item_variant (
711
711
span,
712
712
hir:: LangItem :: PollReady ,
@@ -716,7 +716,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
716
716
let break_x = self . with_loop_scope ( loop_node_id, move |this| {
717
717
let expr_break =
718
718
hir:: ExprKind :: Break ( this. lower_loop_destination ( None ) , Some ( x_expr) ) ;
719
- this. arena . alloc ( this. expr ( span , expr_break, ThinVec :: new ( ) ) )
719
+ this. arena . alloc ( this. expr ( gen_future_span , expr_break, ThinVec :: new ( ) ) )
720
720
} ) ;
721
721
self . arm ( ready_pat, break_x)
722
722
} ;
@@ -788,7 +788,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
788
788
// `match ::std::future::IntoFuture::into_future(<expr>) { ... }`
789
789
let into_future_span = self . mark_span_with_reason (
790
790
DesugaringKind :: Await ,
791
- await_span ,
791
+ dot_await_span ,
792
792
self . allow_into_future . clone ( ) ,
793
793
) ;
794
794
let into_future_expr = self . expr_call_lang_item_fn (
0 commit comments