diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2018-05-16 15:48:11 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-04-23 23:35:20 +0300 |
| commit | c1ec45fb969f6fb020d6b1ab941afbe268adadfb (patch) | |
| tree | 29ebec518284fe56b6df7667af086bdee6dda436 | |
| parent | 82bd7196c2e47d8f66566b049b721089abbf9ab9 (diff) | |
| download | rust-c1ec45fb969f6fb020d6b1ab941afbe268adadfb.tar.gz rust-c1ec45fb969f6fb020d6b1ab941afbe268adadfb.zip | |
rustc_mir: don't use upvar_decls in the generator state transform.
| -rw-r--r-- | src/librustc_mir/transform/generator.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/librustc_mir/transform/generator.rs b/src/librustc_mir/transform/generator.rs index e63c1899fe5..2b909feb960 100644 --- a/src/librustc_mir/transform/generator.rs +++ b/src/librustc_mir/transform/generator.rs @@ -490,7 +490,7 @@ fn locals_live_across_suspend_points( fn compute_layout<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, source: MirSource<'tcx>, - upvars: Vec<Ty<'tcx>>, + upvars: &Vec<Ty<'tcx>>, interior: Ty<'tcx>, movable: bool, mir: &mut Mir<'tcx>) @@ -505,7 +505,7 @@ fn compute_layout<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, movable); // Erase regions from the types passed in from typeck so we can compare them with // MIR types - let allowed_upvars = tcx.erase_regions(&upvars); + let allowed_upvars = tcx.erase_regions(upvars); let allowed = match interior.sty { ty::GeneratorWitness(s) => tcx.erase_late_bound_regions(&s), _ => bug!(), @@ -528,7 +528,7 @@ fn compute_layout<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, } } - let upvar_len = mir.upvar_decls.len(); + let upvar_len = upvars.len(); let dummy_local = LocalDecl::new_internal(tcx.mk_unit(), mir.span); // Gather live locals and their indices replacing values in mir.local_decls with a dummy @@ -917,12 +917,12 @@ impl MirPass for StateTransform { let (remap, layout, storage_liveness) = compute_layout( tcx, source, - upvars, + &upvars, interior, movable, mir); - let state_field = mir.upvar_decls.len(); + let state_field = upvars.len(); // Run the transformation which converts Places from Local to generator struct // accesses for locals in `remap`. |
