File tree 2 files changed +14
-1
lines changed
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>(
721
721
_ => bug ! ( ) ,
722
722
} ;
723
723
724
+ let param_env = tcx. param_env ( source. def_id ( ) ) ;
725
+
724
726
for ( local, decl) in body. local_decls . iter_enumerated ( ) {
725
727
// Ignore locals which are internal or not live
726
728
if !live_locals. contains ( local) || decl. internal {
727
729
continue ;
728
730
}
731
+ let decl_ty = tcx. normalize_erasing_regions ( param_env, decl. ty ) ;
729
732
730
733
// Sanity check that typeck knows about the type of locals which are
731
734
// 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 ) {
733
736
span_bug ! (
734
737
body. span,
735
738
"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