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