Last active
April 16, 2019 17:48
-
-
Save tmandry/38706b422ef52cae9c4c85b1a89b0825 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#![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`) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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 | |
} | |
{} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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