This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -721,15 +721,18 @@ fn compute_layout<'tcx>(
721721 _ => bug ! ( ) ,
722722 } ;
723723
724+ let param_env = tcx. param_env ( source. def_id ( ) ) ;
725+
724726 for ( local, decl) in body. local_decls . iter_enumerated ( ) {
725727 // Ignore locals which are internal or not live
726728 if !live_locals. contains ( local) || decl. internal {
727729 continue ;
728730 }
731+ let decl_ty = tcx. normalize_erasing_regions ( param_env, decl. ty ) ;
729732
730733 // Sanity check that typeck knows about the type of locals which are
731734 // live across a suspension point
732- if !allowed. contains ( & decl . ty ) && !allowed_upvars. contains ( & decl . ty ) {
735+ if !allowed. contains ( & decl_ty ) && !allowed_upvars. contains ( & decl_ty ) {
733736 span_bug ! (
734737 body. span,
735738 "Broken MIR: generator contains type {} in MIR, \
Original file line number Diff line number Diff line change 1+ // check-pass
2+ // edition:2018
3+ // compile-flags: --crate-type=lib
4+
5+ pub async fn test ( ) {
6+ const C : usize = 4 ;
7+ foo ( & mut [ 0u8 ; C ] ) . await ;
8+ }
9+
10+ async fn foo ( _: & mut [ u8 ] ) { }
You can’t perform that action at this time.
0 commit comments