Skip to content

Commit 6896157

Browse files
Remap the resume place if necessary
1 parent 71c4f76 commit 6896157

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/librustc_mir/transform/generator.rs

+9
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,15 @@ impl MutVisitor<'tcx> for TransformVisitor<'tcx> {
325325
// Yield
326326
let state = 3 + self.suspension_points.len();
327327

328+
// The resume arg target location might itself be remapped if its base local is
329+
// live across a yield.
330+
let resume_arg =
331+
if let Some(&(ty, variant, idx)) = self.remap.get(&resume_arg.local) {
332+
self.make_field(variant, idx, ty)
333+
} else {
334+
resume_arg
335+
};
336+
328337
self.suspension_points.push(SuspensionPoint {
329338
state,
330339
resume,

0 commit comments

Comments
 (0)