1 - // MIR for `main` before Derefer
2 + // MIR for `main` after Derefer
5 let mut _0: (); // return place in scope 0 at $DIR/derefer_complex_case.rs:4:11: 4:11
6 let mut _1: std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
7 let mut _2: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
8 let _3: [i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:18: 5:26
9 let mut _4: std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
10 let mut _5: (); // in scope 0 at $DIR/derefer_complex_case.rs:4:1: 6:2
11 let _6: (); // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
12 let mut _7: std::option::Option<&i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
13 let mut _8: &mut std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
14 let mut _9: &mut std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
15 let mut _10: isize; // in scope 0 at $DIR/derefer_complex_case.rs:5:5: 5:40
16 let mut _11: !; // in scope 0 at $DIR/derefer_complex_case.rs:5:5: 5:40
17 let mut _13: i32; // in scope 0 at $DIR/derefer_complex_case.rs:5:34: 5:37
18 let mut _14: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
19 + let mut _15: &i32; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
21 debug iter => _4; // in scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
22 let _12: i32; // in scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13
24 debug foo => _12; // in scope 2 at $DIR/derefer_complex_case.rs:5:10: 5:13
29 StorageLive(_1); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
30 StorageLive(_2); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
31 _14 = const main::promoted[0]; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
33 // + span: $DIR/derefer_complex_case.rs:5:17: 5:26
34 // + literal: Const { ty: &[i32; 2], val: Unevaluated(main, [], Some(promoted[0])) }
35 _2 = &(*_14); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
36 _1 = <&[i32; 2] as IntoIterator>::into_iter(move _2) -> bb1; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
38 // + span: $DIR/derefer_complex_case.rs:5:17: 5:26
39 // + literal: Const { ty: fn(&[i32; 2]) -> <&[i32; 2] as IntoIterator>::IntoIter {<&[i32; 2] as IntoIterator>::into_iter}, val: Value(<ZST>) }
43 StorageDead(_2); // scope 0 at $DIR/derefer_complex_case.rs:5:25: 5:26
44 StorageLive(_4); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
45 _4 = move _1; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26
46 goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40
50 StorageLive(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
51 StorageLive(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
52 StorageLive(_8); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
53 StorageLive(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
54 _9 = &mut _4; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
55 _8 = &mut (*_9); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
56 _7 = <std::slice::Iter<i32> as Iterator>::next(move _8) -> bb3; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
58 // + span: $DIR/derefer_complex_case.rs:5:17: 5:26
59 // + literal: Const { ty: for<'r> fn(&'r mut std::slice::Iter<i32>) -> Option<<std::slice::Iter<i32> as Iterator>::Item> {<std::slice::Iter<i32> as Iterator>::next}, val: Value(<ZST>) }
63 StorageDead(_8); // scope 1 at $DIR/derefer_complex_case.rs:5:25: 5:26
64 _10 = discriminant(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
65 switchInt(move _10) -> [0_isize: bb6, 1_isize: bb4, otherwise: bb5]; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
69 StorageLive(_12); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13
70 - _12 = (*((_7 as Some).0: &i32)); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13
71 + StorageLive(_15); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13
72 + _15 = deref_copy ((_7 as Some).0: &i32); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13
73 + _12 = (*_15); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13
74 + StorageDead(_15); // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37
75 StorageLive(_13); // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37
76 _13 = _12; // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37
77 _6 = std::mem::drop::<i32>(move _13) -> bb7; // scope 2 at $DIR/derefer_complex_case.rs:5:29: 5:38
79 // + span: $DIR/derefer_complex_case.rs:5:29: 5:33
80 // + literal: Const { ty: fn(i32) {std::mem::drop::<i32>}, val: Value(<ZST>) }
84 unreachable; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26
88 _0 = const (); // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40
89 StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40
90 StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40
91 StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40
92 StorageDead(_4); // scope 0 at $DIR/derefer_complex_case.rs:5:39: 5:40
93 StorageDead(_1); // scope 0 at $DIR/derefer_complex_case.rs:5:39: 5:40
94 return; // scope 0 at $DIR/derefer_complex_case.rs:6:2: 6:2
98 StorageDead(_13); // scope 2 at $DIR/derefer_complex_case.rs:5:37: 5:38
99 StorageDead(_12); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40
100 StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40
101 StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40
102 StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40
103 _5 = const (); // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40
104 goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40
108 + resume; // scope 0 at $DIR/derefer_complex_case.rs:4:1: 6:2