@@ -618,9 +618,9 @@ impl<'hir> LoweringContext<'_, 'hir> {
618618 /// Desugar `<expr>.await` into:
619619 /// ```rust
620620 /// match ::std::future::IntoFuture::into_future(<expr>) {
621- /// mut pinned => loop {
621+ /// mut __awaitee => loop {
622622 /// match unsafe { ::std::future::Future::poll(
623- /// <::std::pin::Pin>::new_unchecked(&mut pinned ),
623+ /// <::std::pin::Pin>::new_unchecked(&mut __awaitee ),
624624 /// ::std::future::get_context(task_context),
625625 /// ) } {
626626 /// ::std::task::Poll::Ready(result) => break result,
@@ -657,21 +657,24 @@ impl<'hir> LoweringContext<'_, 'hir> {
657657 let expr = self . lower_expr_mut ( expr) ;
658658 let expr_hir_id = expr. hir_id ;
659659
660- let pinned_ident = Ident :: with_dummy_span ( sym:: pinned) ;
661- let ( pinned_pat, pinned_pat_hid) =
662- self . pat_ident_binding_mode ( span, pinned_ident, hir:: BindingAnnotation :: Mutable ) ;
660+ // Note that the name of this binding must not be changed to something else because
661+ // debuggers and debugger extensions expect it to be called `__awaitee`. They use
662+ // this name to identify what is being awaited by a suspended async functions.
663+ let awaitee_ident = Ident :: with_dummy_span ( sym:: __awaitee) ;
664+ let ( awaitee_pat, awaitee_pat_hid) =
665+ self . pat_ident_binding_mode ( span, awaitee_ident, hir:: BindingAnnotation :: Mutable ) ;
663666
664667 let task_context_ident = Ident :: with_dummy_span ( sym:: _task_context) ;
665668
666669 // unsafe {
667670 // ::std::future::Future::poll(
668- // ::std::pin::Pin::new_unchecked(&mut pinned ),
671+ // ::std::pin::Pin::new_unchecked(&mut __awaitee ),
669672 // ::std::future::get_context(task_context),
670673 // )
671674 // }
672675 let poll_expr = {
673- let pinned = self . expr_ident ( span, pinned_ident , pinned_pat_hid ) ;
674- let ref_mut_pinned = self . expr_mut_addr_of ( span, pinned ) ;
676+ let awaitee = self . expr_ident ( span, awaitee_ident , awaitee_pat_hid ) ;
677+ let ref_mut_awaitee = self . expr_mut_addr_of ( span, awaitee ) ;
675678 let task_context = if let Some ( task_context_hid) = self . task_context {
676679 self . expr_ident_mut ( span, task_context_ident, task_context_hid)
677680 } else {
@@ -681,7 +684,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
681684 let new_unchecked = self . expr_call_lang_item_fn_mut (
682685 span,
683686 hir:: LangItem :: PinNewUnchecked ,
684- arena_vec ! [ self ; ref_mut_pinned ] ,
687+ arena_vec ! [ self ; ref_mut_awaitee ] ,
685688 Some ( expr_hir_id) ,
686689 ) ;
687690 let get_context = self . expr_call_lang_item_fn_mut (
@@ -782,8 +785,8 @@ impl<'hir> LoweringContext<'_, 'hir> {
782785 span : self . lower_span ( span) ,
783786 } ) ;
784787
785- // mut pinned => loop { ... }
786- let pinned_arm = self . arm ( pinned_pat , loop_expr) ;
788+ // mut __awaitee => loop { ... }
789+ let awaitee_arm = self . arm ( awaitee_pat , loop_expr) ;
787790
788791 // `match ::std::future::IntoFuture::into_future(<expr>) { ... }`
789792 let into_future_span = self . mark_span_with_reason (
@@ -799,11 +802,11 @@ impl<'hir> LoweringContext<'_, 'hir> {
799802 ) ;
800803
801804 // match <into_future_expr> {
802- // mut pinned => loop { .. }
805+ // mut __awaitee => loop { .. }
803806 // }
804807 hir:: ExprKind :: Match (
805808 into_future_expr,
806- arena_vec ! [ self ; pinned_arm ] ,
809+ arena_vec ! [ self ; awaitee_arm ] ,
807810 hir:: MatchSource :: AwaitDesugar ,
808811 )
809812 }
0 commit comments