Skip to content

Instantly share code, notes, and snippets.

@jthemphill
Created July 29, 2017 22:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jthemphill/16a54ee3d6594ef34c666ac2149f081e to your computer and use it in GitHub Desktop.
Save jthemphill/16a54ee3d6594ef34c666ac2149f081e to your computer and use it in GitHub Desktop.
// WARNING: This output format is intended for human consumers only
// and is subject to change without notice. Knock yourself out.
fn tests::iter_any::{{closure}}(_1: &mut [closure@src/lib.rs:4:24: 4:35], _2: &i32) -> bool {
let mut _0: bool; // return pointer
scope 1 {
let _3: i32; // "x" in scope 1 at src/lib.rs:4:26: 4:27
}
let mut _4: i32;
bb0: {
StorageLive(_3); // scope 0 at src/lib.rs:4:26: 4:27
_3 = (*_2); // scope 0 at src/lib.rs:4:26: 4:27
StorageLive(_4); // scope 1 at src/lib.rs:4:29: 4:30
_4 = _3; // scope 1 at src/lib.rs:4:29: 4:30
_0 = Eq(_4, const 1i32); // scope 1 at src/lib.rs:4:29: 4:35
StorageDead(_4); // scope 1 at src/lib.rs:4:35: 4:35
StorageDead(_3); // scope 0 at src/lib.rs:4:35: 4:35
return; // scope 1 at src/lib.rs:4:35: 4:35
}
}
fn tests::for_loop() -> bool {
let mut _0: bool; // return pointer
scope 1 {
let _2: (); // "_result" in scope 1 at src/lib.rs:8:9: 10:10
}
scope 2 {
let mut _6: std::slice::Iter<i32>; // "iter" in scope 2 at src/lib.rs:8:9: 10:10
scope 3 {
let mut _8: &i32; // "_next" in scope 3 at src/lib.rs:8:9: 10:10
scope 4 {
let _12: &i32; // "val" in scope 4 at src/lib.rs:8:9: 10:10
}
scope 5 {
let _15: i32; // "x" in scope 5 at src/lib.rs:8:14: 8:15
}
}
}
let mut _1: ();
let mut _3: std::slice::Iter<i32>;
let mut _4: std::slice::Iter<i32>;
let mut _5: &[i32; 1];
let mut _7: ();
let mut _9: std::option::Option<&i32>;
let mut _10: &mut std::slice::Iter<i32>;
let mut _11: &mut std::slice::Iter<i32>;
let mut _13: isize;
let mut _14: &i32;
let mut _16: ();
let mut _17: bool;
let mut _18: i32;
let mut _19: ();
bb0: {
StorageLive(_2); // scope 0 at src/lib.rs:8:9: 10:10
StorageLive(_3); // scope 0 at src/lib.rs:8:9: 10:10
StorageLive(_4); // scope 0 at src/lib.rs:8:19: 8:34
StorageLive(_5); // scope 0 at src/lib.rs:8:19: 8:22
_5 = promoted0; // scope 0 at src/lib.rs:8:19: 8:22
_4 = const std::iter::IntoIterator::into_iter(_5) -> bb1; // scope 0 at src/lib.rs:8:19: 8:34
}
bb1: {
StorageDead(_5); // scope 0 at src/lib.rs:8:34: 8:34
_3 = const std::iter::IntoIterator::into_iter(_4) -> bb2; // scope 0 at src/lib.rs:8:9: 10:10
}
bb2: {
StorageDead(_4); // scope 0 at src/lib.rs:10:10: 10:10
StorageLive(_6); // scope 0 at src/lib.rs:8:9: 10:10
_6 = _3; // scope 0 at src/lib.rs:8:9: 10:10
goto -> bb3; // scope 0 at src/lib.rs:8:9: 10:10
}
bb3: {
StorageLive(_8); // scope 2 at src/lib.rs:8:9: 10:10
StorageLive(_9); // scope 3 at src/lib.rs:8:9: 10:10
StorageLive(_10); // scope 3 at src/lib.rs:8:9: 10:10
StorageLive(_11); // scope 3 at src/lib.rs:8:9: 10:10
_11 = &mut _6; // scope 3 at src/lib.rs:8:9: 10:10
_10 = _11; // scope 3 at src/lib.rs:8:9: 10:10
_9 = const std::iter::Iterator::next(_10) -> bb4; // scope 3 at src/lib.rs:8:9: 10:10
}
bb4: {
StorageDead(_10); // scope 3 at src/lib.rs:10:10: 10:10
_13 = discriminant(_9); // scope 3 at src/lib.rs:8:9: 10:10
switchInt(_13) -> [0isize: bb5, otherwise: bb6]; // scope 3 at src/lib.rs:8:9: 10:10
}
bb5: {
_2 = (); // scope 3 at src/lib.rs:8:9: 10:10
StorageDead(_12); // scope 3 at src/lib.rs:10:10: 10:10
StorageDead(_9); // scope 3 at src/lib.rs:10:10: 10:10
StorageDead(_11); // scope 3 at src/lib.rs:10:10: 10:10
StorageDead(_8); // scope 2 at src/lib.rs:10:10: 10:10
StorageDead(_6); // scope 0 at src/lib.rs:10:10: 10:10
StorageDead(_3); // scope 0 at src/lib.rs:10:10: 10:10
StorageLive(_19); // scope 1 at src/lib.rs:8:9: 10:10
_19 = _2; // scope 1 at src/lib.rs:8:9: 10:10
_1 = _19; // scope 1 at src/lib.rs:8:9: 10:10
StorageDead(_19); // scope 1 at src/lib.rs:10:10: 10:10
StorageDead(_2); // scope 0 at src/lib.rs:10:10: 10:10
_0 = const false; // scope 0 at src/lib.rs:11:16: 11:21
goto -> bb9; // scope 0 at src/lib.rs:11:9: 11:21
}
bb6: {
StorageLive(_12); // scope 3 at src/lib.rs:8:9: 10:10
_12 = ((_9 as Some).0: &i32); // scope 3 at src/lib.rs:8:9: 10:10
StorageLive(_14); // scope 4 at src/lib.rs:8:9: 10:10
_14 = _12; // scope 4 at src/lib.rs:8:9: 10:10
_8 = _14; // scope 4 at src/lib.rs:8:9: 10:10
StorageDead(_14); // scope 4 at src/lib.rs:10:10: 10:10
StorageDead(_12); // scope 3 at src/lib.rs:10:10: 10:10
StorageDead(_9); // scope 3 at src/lib.rs:10:10: 10:10
StorageDead(_11); // scope 3 at src/lib.rs:10:10: 10:10
StorageLive(_15); // scope 3 at src/lib.rs:8:14: 8:15
_15 = (*_8); // scope 3 at src/lib.rs:8:14: 8:15
StorageLive(_17); // scope 5 at src/lib.rs:9:16: 9:22
StorageLive(_18); // scope 5 at src/lib.rs:9:16: 9:17
_18 = _15; // scope 5 at src/lib.rs:9:16: 9:17
_17 = Eq(_18, const 1i32); // scope 5 at src/lib.rs:9:16: 9:22
StorageDead(_18); // scope 5 at src/lib.rs:9:22: 9:22
switchInt(_17) -> [0u8: bb8, otherwise: bb7]; // scope 5 at src/lib.rs:9:13: 9:39
}
bb7: {
_0 = const true; // scope 5 at src/lib.rs:9:32: 9:36
StorageDead(_17); // scope 5 at src/lib.rs:9:39: 9:39
StorageDead(_15); // scope 3 at src/lib.rs:10:10: 10:10
StorageDead(_8); // scope 2 at src/lib.rs:10:10: 10:10
StorageDead(_6); // scope 0 at src/lib.rs:10:10: 10:10
StorageDead(_3); // scope 0 at src/lib.rs:10:10: 10:10
goto -> bb9; // scope 0 at src/lib.rs:9:25: 9:36
}
bb8: {
_16 = (); // scope 5 at src/lib.rs:9:13: 9:39
StorageDead(_17); // scope 5 at src/lib.rs:9:39: 9:39
_7 = (); // scope 5 at src/lib.rs:8:9: 10:10
StorageDead(_15); // scope 3 at src/lib.rs:10:10: 10:10
StorageDead(_8); // scope 2 at src/lib.rs:10:10: 10:10
goto -> bb3; // scope 2 at src/lib.rs:8:9: 10:10
}
bb9: {
return; // scope 0 at src/lib.rs:12:6: 12:6
}
}
promoted0 in tests::for_loop: &[i32; 1] = {
let mut _0: &[i32; 1]; // return pointer
let mut _1: [i32; 1];
bb0: {
_1 = [const 1i32]; // scope 0 at src/lib.rs:8:19: 8:22
_0 = &_1; // scope 0 at src/lib.rs:8:19: 8:22
return; // scope 0 at src/lib.rs:8:19: 8:22
}
}
fn tests::iter_any() -> bool {
let mut _0: bool; // return pointer
let mut _1: &mut std::slice::Iter<i32>;
let mut _2: std::slice::Iter<i32>;
let mut _3: &[i32];
let mut _4: &[i32; 1];
let mut _5: [closure@src/lib.rs:4:24: 4:35];
bb0: {
StorageLive(_1); // scope 0 at src/lib.rs:4:9: 4:19
StorageLive(_2); // scope 0 at src/lib.rs:4:9: 4:19
StorageLive(_3); // scope 0 at src/lib.rs:4:9: 4:12
StorageLive(_4); // scope 0 at src/lib.rs:4:9: 4:12
_4 = promoted0; // scope 0 at src/lib.rs:4:9: 4:12
_3 = _4 as &[i32] (Unsize); // scope 0 at src/lib.rs:4:9: 4:12
StorageDead(_4); // scope 0 at src/lib.rs:4:12: 4:12
_2 = const std::slice::<impl [T]>::iter(_3) -> bb1; // scope 0 at src/lib.rs:4:9: 4:19
}
bb1: {
_1 = &mut _2; // scope 0 at src/lib.rs:4:9: 4:19
StorageDead(_3); // scope 0 at src/lib.rs:4:19: 4:19
StorageLive(_5); // scope 0 at src/lib.rs:4:24: 4:35
_5 = [closure@src/lib.rs:4:24: 4:35]; // scope 0 at src/lib.rs:4:24: 4:35
_0 = const std::iter::Iterator::any(_1, _5) -> bb2; // scope 0 at src/lib.rs:4:9: 4:36
}
bb2: {
StorageDead(_5); // scope 0 at src/lib.rs:4:36: 4:36
StorageDead(_1); // scope 0 at src/lib.rs:4:36: 4:36
StorageDead(_2); // scope 0 at src/lib.rs:5:6: 5:6
return; // scope 0 at src/lib.rs:5:6: 5:6
}
}
promoted0 in tests::iter_any: &[i32; 1] = {
let mut _0: &[i32; 1]; // return pointer
let mut _1: [i32; 1];
bb0: {
_1 = [const 1i32]; // scope 0 at src/lib.rs:4:9: 4:12
_0 = &_1; // scope 0 at src/lib.rs:4:9: 4:12
return; // scope 0 at src/lib.rs:4:9: 4:12
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment