Skip to content

Instantly share code, notes, and snippets.

@tmandry
Last active April 16, 2019 17:48
Show Gist options
  • Save tmandry/38706b422ef52cae9c4c85b1a89b0825 to your computer and use it in GitHub Desktop.
Save tmandry/38706b422ef52cae9c4c85b1a89b0825 to your computer and use it in GitHub Desktop.
#![feature(generators)]
fn main() {
let a = || {
{
let x: i32 = 5;
yield;
println!("{:?}", x);
}
{
let y: i32 = 5;
yield;
println!("{:?}", y);
}
};
println!("{}", std::mem::size_of_val(&a)); // prints "12", could print "8" (4 for state, 4 for `x`)
}
// MIR local liveness analysis for `main::{{closure}}#0`
// source = MirSource { instance: Item(DefId(0/1:9 ~ generator_size[317d]::main[0]::{{closure}}[0])), promoted: None }
// pass_name = generator_liveness
fn main::{{closure}}#0(_1: [generator@playground/generator-size.rs:4:13: 15:6 {i32, ()}]) -> std::ops::GeneratorState<(), ()>
yields ()
{
let mut _0: std::ops::GeneratorState<(), ()>; // return place
scope 1 {
let _23: &i32; // "arg0" in scope 1 at playground/generator-size.rs:1:1: 1:1
scope 3 {
}
}
scope 2 {
let _3: i32 as UserTypeProjection { base: UserType(0), projs: [] }; // "x" in scope 2 at playground/generator-size.rs:6:17: 6:18
}
scope 4 {
let _47: &i32; // "arg0" in scope 4 at playground/generator-size.rs:1:1: 1:1
scope 6 {
}
}
scope 5 {
let _27: i32 as UserTypeProjection { base: UserType(4), projs: [] }; // "y" in scope 5 at playground/generator-size.rs:11:17: 11:18
}
let mut _2: ();
let mut _4: ();
let mut _5: ();
let mut _6: ();
let mut _7: ();
let mut _8: std::fmt::Arguments;
let mut _9: &[&str];
let mut _10: &[&str; 2];
let mut _11: &[&str; 2];
let _12: [&str; 2];
let mut _13: &str;
let mut _14: &str;
let mut _15: &str;
let mut _16: &str;
let mut _17: &[std::fmt::ArgumentV1];
let mut _18: &[std::fmt::ArgumentV1; 1];
let mut _19: &[std::fmt::ArgumentV1; 1];
let _20: [std::fmt::ArgumentV1; 1];
let mut _21: (&i32,);
let mut _22: &i32;
let mut _24: std::fmt::ArgumentV1;
let mut _25: &i32;
let mut _26: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>;
let mut _28: ();
let mut _29: ();
let mut _30: ();
let mut _31: ();
let mut _32: std::fmt::Arguments;
let mut _33: &[&str];
let mut _34: &[&str; 2];
let mut _35: &[&str; 2];
let _36: [&str; 2];
let mut _37: &str;
let mut _38: &str;
let mut _39: &str;
let mut _40: &str;
let mut _41: &[std::fmt::ArgumentV1];
let mut _42: &[std::fmt::ArgumentV1; 1];
let mut _43: &[std::fmt::ArgumentV1; 1];
let _44: [std::fmt::ArgumentV1; 1];
let mut _45: (&i32,);
let mut _46: &i32;
let mut _48: std::fmt::ArgumentV1;
let mut _49: &i32;
let mut _50: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>;
let mut _51: ();
bb0: {
StorageLive(_3); // bb0[0]: scope 0 at playground/generator-size.rs:6:17: 6:18
_3 = const 5i32; // bb0[1]: scope 0 at playground/generator-size.rs:6:26: 6:27
// ty::Const
// + ty: i32
// + val: Scalar(Bits { size: 4, bits: 5 })
// mir::Constant
// + span: playground/generator-size.rs:6:26: 6:27
// + ty: i32
// + literal: Const { ty: i32, val: Scalar(Bits { size: 4, bits: 5 }) }
StorageLive(_5); // bb0[2]: scope 1 at playground/generator-size.rs:7:13: 7:18
_5 = (); // bb0[3]: scope 1 at playground/generator-size.rs:7:13: 7:18
_1 = suspend(move _5) -> [resume: bb2, drop: bb3]; // bb0[4]: scope 1 at playground/generator-size.rs:7:13: 7:18
}
{_1, _3}
bb1 (cleanup): {
resume; // bb1[0]: scope 0 at playground/generator-size.rs:4:13: 15:6
}
{}
bb2: {
_4 = (); // bb2[0]: scope 1 at playground/generator-size.rs:7:13: 7:18
StorageDead(_5); // bb2[1]: scope 1 at playground/generator-size.rs:7:17: 7:18
StorageLive(_8); // bb2[2]: scope 1 at <::std::macros::println macros>:2:29: 2:63
StorageLive(_9); // bb2[3]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageLive(_10); // bb2[4]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageLive(_11); // bb2[5]: scope 1 at playground/generator-size.rs:8:22: 8:28
_11 = &(promoted[1]: [&str; 2]); // bb2[6]: scope 1 at playground/generator-size.rs:8:22: 8:28
_10 = &(*_11); // bb2[7]: scope 1 at playground/generator-size.rs:8:22: 8:28
_9 = move _10 as &[&str] (Unsize); // bb2[8]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageDead(_10); // bb2[9]: scope 1 at playground/generator-size.rs:8:27: 8:28
StorageLive(_17); // bb2[10]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageLive(_18); // bb2[11]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageLive(_19); // bb2[12]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageLive(_20); // bb2[13]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageLive(_21); // bb2[14]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageLive(_22); // bb2[15]: scope 1 at playground/generator-size.rs:8:30: 8:31
_22 = &_3; // bb2[16]: scope 1 at playground/generator-size.rs:8:30: 8:31
_21 = (move _22,); // bb2[17]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageDead(_22); // bb2[18]: scope 1 at playground/generator-size.rs:8:27: 8:28
StorageLive(_23); // bb2[19]: scope 1 at playground/generator-size.rs:1:1: 1:1
_23 = (_21.0: &i32); // bb2[20]: scope 1 at playground/generator-size.rs:1:1: 1:1
StorageLive(_24); // bb2[21]: scope 3 at <::std::macros::println macros>:2:29: 2:63
StorageLive(_25); // bb2[22]: scope 3 at playground/generator-size.rs:8:30: 8:31
_25 = &(*_23); // bb2[23]: scope 3 at playground/generator-size.rs:8:30: 8:31
StorageLive(_26); // bb2[24]: scope 3 at playground/generator-size.rs:8:30: 8:31
_26 = const std::fmt::Debug::fmt as for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (ReifyFnPointer); // bb2[25]: scope 3 at playground/generator-size.rs:8:30: 8:31
// ty::Const
// + ty: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<i32 as std::fmt::Debug>::fmt}
// + val: Scalar(Bits { size: 0, bits: 0 })
// mir::Constant
// + span: playground/generator-size.rs:8:30: 8:31
// + ty: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<i32 as std::fmt::Debug>::fmt}
// + literal: Const { ty: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<i32 as std::fmt::Debug>::fmt}, val: Scalar(Bits { size: 0, bits: 0 }) }
_24 = const std::fmt::ArgumentV1::<'a>::new(move _25, move _26) -> [return: bb5, unwind: bb6]; // bb2[26]: scope 3 at <::std::macros::println macros>:2:29: 2:63
// ty::Const
// + ty: for<'b> fn(&'b i32, for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> std::fmt::ArgumentV1<'b> {std::fmt::ArgumentV1::new::<i32>}
// + val: Scalar(Bits { size: 0, bits: 0 })
// mir::Constant
// + span: <::std::macros::println macros>:2:29: 2:63
// + ty: for<'b> fn(&'b i32, for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> std::fmt::ArgumentV1<'b> {std::fmt::ArgumentV1::new::<i32>}
// + user_ty: UserType(3)
// + literal: Const { ty: for<'b> fn(&'b i32, for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> std::fmt::ArgumentV1<'b> {std::fmt::ArgumentV1::new::<i32>}, val: Scalar(Bits { size: 0, bits: 0 }) }
}
{_1, _9, _24}
bb3: {
drop(_1) -> [return: bb4, unwind: bb1]; // bb3[0]: scope 0 at playground/generator-size.rs:15:5: 15:6
}
{}
bb4: {
generator_drop; // bb4[0]: scope 0 at playground/generator-size.rs:4:13: 15:6
}
{}
bb5: {
StorageDead(_26); // bb5[0]: scope 3 at <::std::macros::println macros>:2:62: 2:63
StorageDead(_25); // bb5[1]: scope 3 at <::std::macros::println macros>:2:62: 2:63
_20 = [move _24]; // bb5[2]: scope 3 at playground/generator-size.rs:8:22: 8:28
StorageDead(_24); // bb5[3]: scope 3 at playground/generator-size.rs:8:27: 8:28
StorageDead(_23); // bb5[4]: scope 1 at playground/generator-size.rs:8:27: 8:28
_19 = &_20; // bb5[5]: scope 1 at playground/generator-size.rs:8:22: 8:28
_18 = &(*_19); // bb5[6]: scope 1 at playground/generator-size.rs:8:22: 8:28
_17 = move _18 as &[std::fmt::ArgumentV1] (Unsize); // bb5[7]: scope 1 at playground/generator-size.rs:8:22: 8:28
StorageDead(_18); // bb5[8]: scope 1 at playground/generator-size.rs:8:27: 8:28
_8 = const std::fmt::Arguments::<'a>::new_v1(move _9, move _17) -> [return: bb7, unwind: bb6]; // bb5[9]: scope 1 at <::std::macros::println macros>:2:29: 2:63
// ty::Const
// + ty: fn(&[&str], &[std::fmt::ArgumentV1]) -> std::fmt::Arguments {std::fmt::Arguments::new_v1}
// + val: Scalar(Bits { size: 0, bits: 0 })
// mir::Constant
// + span: <::std::macros::println macros>:2:29: 2:63
// + ty: fn(&[&str], &[std::fmt::ArgumentV1]) -> std::fmt::Arguments {std::fmt::Arguments::new_v1}
// + user_ty: UserType(2)
// + literal: Const { ty: fn(&[&str], &[std::fmt::ArgumentV1]) -> std::fmt::Arguments {std::fmt::Arguments::new_v1}, val: Scalar(Bits { size: 0, bits: 0 }) }
}
{_1, _8}
bb6 (cleanup): {
drop(_1) -> bb1; // bb6[0]: scope 0 at playground/generator-size.rs:15:5: 15:6
}
{}
bb7: {
StorageDead(_17); // bb7[0]: scope 1 at <::std::macros::println macros>:2:62: 2:63
StorageDead(_9); // bb7[1]: scope 1 at <::std::macros::println macros>:2:62: 2:63
_7 = const std::io::_print(move _8) -> [return: bb8, unwind: bb6]; // bb7[2]: scope 1 at <::std::macros::println macros>:2:3: 2:65
// ty::Const
// + ty: for<'r> fn(std::fmt::Arguments<'r>) {std::io::_print}
// + val: Scalar(Bits { size: 0, bits: 0 })
// mir::Constant
// + span: <::std::macros::println macros>:2:3: 2:26
// + ty: for<'r> fn(std::fmt::Arguments<'r>) {std::io::_print}
// + literal: Const { ty: for<'r> fn(std::fmt::Arguments<'r>) {std::io::_print}, val: Scalar(Bits { size: 0, bits: 0 }) }
}
{_1}
bb8: {
StorageDead(_8); // bb8[0]: scope 1 at <::std::macros::println macros>:2:64: 2:65
StorageDead(_19); // bb8[1]: scope 1 at <::std::macros::println macros>:2:66: 2:67
StorageDead(_20); // bb8[2]: scope 1 at <::std::macros::println macros>:2:66: 2:67
StorageDead(_21); // bb8[3]: scope 1 at <::std::macros::println macros>:2:66: 2:67
StorageDead(_11); // bb8[4]: scope 1 at <::std::macros::println macros>:2:66: 2:67
_6 = (); // bb8[5]: scope 1 at <::std::macros::println macros>:2:1: 2:69
_2 = (); // bb8[6]: scope 0 at playground/generator-size.rs:5:9: 9:10
StorageDead(_3); // bb8[7]: scope 0 at playground/generator-size.rs:9:9: 9:10
StorageLive(_27); // bb8[8]: scope 0 at playground/generator-size.rs:11:17: 11:18
_27 = const 5i32; // bb8[9]: scope 0 at playground/generator-size.rs:11:26: 11:27
// ty::Const
// + ty: i32
// + val: Scalar(Bits { size: 4, bits: 5 })
// mir::Constant
// + span: playground/generator-size.rs:11:26: 11:27
// + ty: i32
// + literal: Const { ty: i32, val: Scalar(Bits { size: 4, bits: 5 }) }
StorageLive(_29); // bb8[10]: scope 4 at playground/generator-size.rs:12:13: 12:18
_29 = (); // bb8[11]: scope 4 at playground/generator-size.rs:12:13: 12:18
_1 = suspend(move _29) -> [resume: bb9, drop: bb3]; // bb8[12]: scope 4 at playground/generator-size.rs:12:13: 12:18
}
{_1, _27}
bb9: {
_28 = (); // bb9[0]: scope 4 at playground/generator-size.rs:12:13: 12:18
StorageDead(_29); // bb9[1]: scope 4 at playground/generator-size.rs:12:17: 12:18
StorageLive(_32); // bb9[2]: scope 4 at <::std::macros::println macros>:2:29: 2:63
StorageLive(_33); // bb9[3]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageLive(_34); // bb9[4]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageLive(_35); // bb9[5]: scope 4 at playground/generator-size.rs:13:22: 13:28
_35 = &(promoted[0]: [&str; 2]); // bb9[6]: scope 4 at playground/generator-size.rs:13:22: 13:28
_34 = &(*_35); // bb9[7]: scope 4 at playground/generator-size.rs:13:22: 13:28
_33 = move _34 as &[&str] (Unsize); // bb9[8]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageDead(_34); // bb9[9]: scope 4 at playground/generator-size.rs:13:27: 13:28
StorageLive(_41); // bb9[10]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageLive(_42); // bb9[11]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageLive(_43); // bb9[12]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageLive(_44); // bb9[13]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageLive(_45); // bb9[14]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageLive(_46); // bb9[15]: scope 4 at playground/generator-size.rs:13:30: 13:31
_46 = &_27; // bb9[16]: scope 4 at playground/generator-size.rs:13:30: 13:31
_45 = (move _46,); // bb9[17]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageDead(_46); // bb9[18]: scope 4 at playground/generator-size.rs:13:27: 13:28
StorageLive(_47); // bb9[19]: scope 4 at playground/generator-size.rs:1:1: 1:1
_47 = (_45.0: &i32); // bb9[20]: scope 4 at playground/generator-size.rs:1:1: 1:1
StorageLive(_48); // bb9[21]: scope 6 at <::std::macros::println macros>:2:29: 2:63
StorageLive(_49); // bb9[22]: scope 6 at playground/generator-size.rs:13:30: 13:31
_49 = &(*_47); // bb9[23]: scope 6 at playground/generator-size.rs:13:30: 13:31
StorageLive(_50); // bb9[24]: scope 6 at playground/generator-size.rs:13:30: 13:31
_50 = const std::fmt::Debug::fmt as for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (ReifyFnPointer); // bb9[25]: scope 6 at playground/generator-size.rs:13:30: 13:31
// ty::Const
// + ty: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<i32 as std::fmt::Debug>::fmt}
// + val: Scalar(Bits { size: 0, bits: 0 })
// mir::Constant
// + span: playground/generator-size.rs:13:30: 13:31
// + ty: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<i32 as std::fmt::Debug>::fmt}
// + literal: Const { ty: for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<i32 as std::fmt::Debug>::fmt}, val: Scalar(Bits { size: 0, bits: 0 }) }
_48 = const std::fmt::ArgumentV1::<'a>::new(move _49, move _50) -> [return: bb10, unwind: bb6]; // bb9[26]: scope 6 at <::std::macros::println macros>:2:29: 2:63
// ty::Const
// + ty: for<'b> fn(&'b i32, for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> std::fmt::ArgumentV1<'b> {std::fmt::ArgumentV1::new::<i32>}
// + val: Scalar(Bits { size: 0, bits: 0 })
// mir::Constant
// + span: <::std::macros::println macros>:2:29: 2:63
// + ty: for<'b> fn(&'b i32, for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> std::fmt::ArgumentV1<'b> {std::fmt::ArgumentV1::new::<i32>}
// + user_ty: UserType(7)
// + literal: Const { ty: for<'b> fn(&'b i32, for<'r, 's, 't0> fn(&'r i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> std::fmt::ArgumentV1<'b> {std::fmt::ArgumentV1::new::<i32>}, val: Scalar(Bits { size: 0, bits: 0 }) }
}
{_1, _33, _48}
bb10: {
StorageDead(_50); // bb10[0]: scope 6 at <::std::macros::println macros>:2:62: 2:63
StorageDead(_49); // bb10[1]: scope 6 at <::std::macros::println macros>:2:62: 2:63
_44 = [move _48]; // bb10[2]: scope 6 at playground/generator-size.rs:13:22: 13:28
StorageDead(_48); // bb10[3]: scope 6 at playground/generator-size.rs:13:27: 13:28
StorageDead(_47); // bb10[4]: scope 4 at playground/generator-size.rs:13:27: 13:28
_43 = &_44; // bb10[5]: scope 4 at playground/generator-size.rs:13:22: 13:28
_42 = &(*_43); // bb10[6]: scope 4 at playground/generator-size.rs:13:22: 13:28
_41 = move _42 as &[std::fmt::ArgumentV1] (Unsize); // bb10[7]: scope 4 at playground/generator-size.rs:13:22: 13:28
StorageDead(_42); // bb10[8]: scope 4 at playground/generator-size.rs:13:27: 13:28
_32 = const std::fmt::Arguments::<'a>::new_v1(move _33, move _41) -> [return: bb11, unwind: bb6]; // bb10[9]: scope 4 at <::std::macros::println macros>:2:29: 2:63
// ty::Const
// + ty: fn(&[&str], &[std::fmt::ArgumentV1]) -> std::fmt::Arguments {std::fmt::Arguments::new_v1}
// + val: Scalar(Bits { size: 0, bits: 0 })
// mir::Constant
// + span: <::std::macros::println macros>:2:29: 2:63
// + ty: fn(&[&str], &[std::fmt::ArgumentV1]) -> std::fmt::Arguments {std::fmt::Arguments::new_v1}
// + user_ty: UserType(6)
// + literal: Const { ty: fn(&[&str], &[std::fmt::ArgumentV1]) -> std::fmt::Arguments {std::fmt::Arguments::new_v1}, val: Scalar(Bits { size: 0, bits: 0 }) }
}
{_1, _32}
bb11: {
StorageDead(_41); // bb11[0]: scope 4 at <::std::macros::println macros>:2:62: 2:63
StorageDead(_33); // bb11[1]: scope 4 at <::std::macros::println macros>:2:62: 2:63
_31 = const std::io::_print(move _32) -> [return: bb12, unwind: bb6]; // bb11[2]: scope 4 at <::std::macros::println macros>:2:3: 2:65
// ty::Const
// + ty: for<'r> fn(std::fmt::Arguments<'r>) {std::io::_print}
// + val: Scalar(Bits { size: 0, bits: 0 })
// mir::Constant
// + span: <::std::macros::println macros>:2:3: 2:26
// + ty: for<'r> fn(std::fmt::Arguments<'r>) {std::io::_print}
// + literal: Const { ty: for<'r> fn(std::fmt::Arguments<'r>) {std::io::_print}, val: Scalar(Bits { size: 0, bits: 0 }) }
}
{_1}
bb12: {
StorageDead(_32); // bb12[0]: scope 4 at <::std::macros::println macros>:2:64: 2:65
StorageDead(_43); // bb12[1]: scope 4 at <::std::macros::println macros>:2:66: 2:67
StorageDead(_44); // bb12[2]: scope 4 at <::std::macros::println macros>:2:66: 2:67
StorageDead(_45); // bb12[3]: scope 4 at <::std::macros::println macros>:2:66: 2:67
StorageDead(_35); // bb12[4]: scope 4 at <::std::macros::println macros>:2:66: 2:67
_30 = (); // bb12[5]: scope 4 at <::std::macros::println macros>:2:1: 2:69
_51 = (); // bb12[6]: scope 0 at playground/generator-size.rs:10:9: 14:10
StorageDead(_27); // bb12[7]: scope 0 at playground/generator-size.rs:14:9: 14:10
drop(_1) -> [return: bb13, unwind: bb1]; // bb12[8]: scope 0 at playground/generator-size.rs:15:5: 15:6
}
{}
bb13: {
return; // bb13[0]: scope 0 at playground/generator-size.rs:15:6: 15:6
}
{}
}
DEBUG 2019-04-16T01:03:29Z: rustc_mir::transform::generator: locals_eligible_for_overlap(playground/generator-size.rs:4:13: 15:6)
DEBUG 2019-04-16T01:03:29Z: rustc_mir::transform::generator: ignored = [_0, _1, _2, _4, _6, _7, _12, _13, _14, _15, _16, _28, _30, _31, _36, _37, _38, _39, _40, _51]
DEBUG 2019-04-16T01:03:29Z: rustc_mir::transform::generator: eligible_locals = [_3, _27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb1[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb1[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb1[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb1[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb1[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb1[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb3[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb3[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb3[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb3[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb3[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb3[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb4[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb4[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb4[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb4[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb4[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb4[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb6[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb6[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb6[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb6[0]: [_3]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _3 overlaps with these locals at bb6[0]: [_27]
TRACE 2019-04-16T01:03:29Z: rustc_mir::transform::generator: local _27 overlaps with these locals at bb6[0]: [_3]
DEBUG 2019-04-16T01:03:29Z: rustc_mir::transform::generator: removing local _27 due to overlap
DEBUG 2019-04-16T01:03:29Z: rustc_mir::transform::generator: locals_eligible_for_overlap() => (assignments: {bb0: [_3]}, eligible_locals: [_3]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment