@@ -8,19 +8,32 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
88 let mut _4 : std::ops::Range<u32>; // in scope 0 at $DIR/range_iter.rs:+1:14: +1:24
99 let mut _5 : std::ops::Range<u32>; // in scope 0 at $DIR/range_iter.rs:+1:14: +1:24
1010 let mut _6 : &mut std::ops::Range<u32>; // in scope 0 at $DIR/range_iter.rs:+1:14: +1:24
11- let mut _7 : std::option::Option<u32>; // in scope 0 at $DIR/range_iter.rs:+1:14: +1:24
12- let mut _8 : isize; // in scope 0 at $DIR/range_iter.rs:+1:5: +3:6
13- let mut _10 : &impl Fn(u32); // in scope 0 at $DIR/range_iter.rs:+2:9: +2:10
14- let mut _11 : (u32,); // in scope 0 at $DIR/range_iter.rs:+2:9: +2:13
15- let _12 : (); // in scope 0 at $DIR/range_iter.rs:+1:14: +1:24
11+ let mut _10 : std::option::Option<u32>; // in scope 0 at $DIR/range_iter.rs:+1:14: +1:24
12+ let mut _13 : isize; // in scope 0 at $DIR/range_iter.rs:+1:5: +3:6
13+ let mut _15 : &impl Fn(u32); // in scope 0 at $DIR/range_iter.rs:+2:9: +2:10
14+ let mut _16 : (u32,); // in scope 0 at $DIR/range_iter.rs:+2:9: +2:13
15+ let _17 : (); // in scope 0 at $DIR/range_iter.rs:+1:14: +1:24
1616 scope 1 {
1717 debug iter => _5; // in scope 1 at $DIR/range_iter.rs:+1:14 : +1:24
18- let _9 : u32; // in scope 1 at $DIR/range_iter.rs:+1:9: +1:10
18+ let _14 : u32; // in scope 1 at $DIR/range_iter.rs:+1:9: +1:10
1919 scope 2 {
20- debug x => _9; // in scope 2 at $DIR/range_iter.rs:+1:9 : +1:10
20+ debug x => _14; // in scope 2 at $DIR/range_iter.rs:+1:9 : +1:10
2121 }
2222 scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<u32>>::next) { // at $DIR/range_iter.rs:21:14 : 21:24
2323 debug self => _6; // in scope 4 at $SRC_DIR/core/src/iter/range.rs:LL:COL
24+ scope 5 (inlined <std::ops::Range<u32> as iter::range::RangeIteratorImpl>::spec_next) { // at $SRC_DIR/core/src/iter/range.rs:LL:COL
25+ debug self => _6; // in scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
26+ let mut _7 : &u32; // in scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
27+ let mut _8 : &u32; // in scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
28+ let mut _9 : bool; // in scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
29+ let _11 : u32; // in scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
30+ let mut _12 : u32; // in scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
31+ scope 6 {
32+ debug old => _11; // in scope 6 at $SRC_DIR/core/src/iter/range.rs:LL:COL
33+ scope 7 {
34+ }
35+ }
36+ }
2437 }
2538 }
2639 scope 3 (inlined <std::ops::Range<u32> as IntoIterator>::into_iter) { // at $DIR/range_iter.rs:21:14 : 21:24
@@ -35,57 +48,92 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
3548 }
3649
3750 bb1 : {
38- StorageLive(_7); // scope 1 at $DIR/range_iter.rs:+1:14 : +1:24
51+ StorageLive(_10); // scope 1 at $DIR/range_iter.rs:+1:14 : +1:24
3952 _6 = &mut _5; // scope 1 at $DIR/range_iter.rs:+1:14 : +1:24
40- _7 = <std::ops::Range<u32> as iter::range::RangeIteratorImpl>::spec_next(_6) -> [return : bb2, unwind: bb8]; // scope 4 at $SRC_DIR/core/src/iter/range.rs:LL:COL
53+ StorageLive(_11); // scope 4 at $SRC_DIR/core/src/iter/range.rs:LL:COL
54+ StorageLive(_9); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
55+ StorageLive(_7); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
56+ _7 = &((*_6).0 : u32); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
57+ StorageLive(_8); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
58+ _8 = &((*_6).1 : u32); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
59+ _9 = <u32 as PartialOrd>::lt(move _7, move _8) -> [return : bb2, unwind: bb12]; // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
4160 // mir::Constant
4261 // + span : $SRC_DIR/core/src/iter/range.rs:LL:COL
43- // + literal : Const { ty: for<'a> fn(&'a mut std::ops::Range< u32> ) -> Option<<std::ops::Range<u32> as iter::range::RangeIteratorImpl>::Item> {<std::ops::Range< u32> as iter::range::RangeIteratorImpl >::spec_next }, val: Value(<ZST>) }
62+ // + literal : Const { ty: for<'a, 'b > fn(&'a u32, &'b u32) -> bool {< u32 as PartialOrd >::lt }, val: Value(<ZST>) }
4463 }
4564
4665 bb2 : {
47- _8 = discriminant(_7); // scope 1 at $DIR/range_iter.rs:+1:14 : +1:24
48- switchInt(move _8) -> [0 : bb3, 1: bb5, otherwise: bb7]; // scope 1 at $DIR/range_iter.rs:+1:14: +1:24
66+ StorageDead(_8); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
67+ StorageDead(_7); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
68+ switchInt(move _9) -> [0 : bb3, otherwise: bb4]; // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
4969 }
5070
5171 bb3 : {
52- StorageDead(_7); // scope 1 at $DIR/range_iter.rs:+3:5 : +3:6
53- StorageDead(_5); // scope 0 at $DIR/range_iter.rs:+3:5 : +3:6
54- drop(_3) -> bb4; // scope 0 at $DIR/range_iter.rs:+4:1 : +4:2
72+ _10 = Option::<u32>::None; // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
73+ goto -> bb6; // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
5574 }
5675
5776 bb4 : {
58- return; // scope 0 at $DIR/range_iter.rs:+4:2 : +4:2
77+ _11 = ((*_6).0 : u32); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
78+ StorageLive(_12); // scope 6 at $SRC_DIR/core/src/iter/range.rs:LL:COL
79+ _12 = <u32 as Step>::forward_unchecked(_11, const 1_usize) -> [return : bb5, unwind: bb12]; // scope 7 at $SRC_DIR/core/src/iter/range.rs:LL:COL
80+ // mir::Constant
81+ // + span : $SRC_DIR/core/src/iter/range.rs:LL:COL
82+ // + literal : Const { ty: unsafe fn(u32, usize) -> u32 {<u32 as Step>::forward_unchecked}, val: Value(<ZST>) }
5983 }
6084
6185 bb5 : {
62- _9 = ((_7 as Some).0 : u32); // scope 1 at $DIR/range_iter.rs:+1:9: +1:10
63- StorageLive(_10); // scope 2 at $DIR/range_iter.rs:+2:9 : +2:10
64- _10 = &_3; // scope 2 at $DIR/range_iter.rs:+2:9 : +2:10
65- StorageLive(_11); // scope 2 at $DIR/range_iter.rs:+2:9 : +2:13
66- _11 = (_9,); // scope 2 at $DIR/range_iter.rs:+2:9 : +2:13
67- _12 = <impl Fn(u32) as Fn<(u32,)>>::call(move _10, move _11) -> [return : bb6, unwind: bb8]; // scope 2 at $DIR/range_iter.rs:+2:9: +2:13
86+ ((*_6).0 : u32) = move _12; // scope 6 at $SRC_DIR/core/src/iter/range.rs:LL:COL
87+ StorageDead(_12); // scope 6 at $SRC_DIR/core/src/iter/range.rs:LL:COL
88+ _10 = Option::<u32>::Some(_11); // scope 6 at $SRC_DIR/core/src/iter/range.rs:LL:COL
89+ goto -> bb6; // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
90+ }
91+
92+ bb6 : {
93+ StorageDead(_9); // scope 5 at $SRC_DIR/core/src/iter/range.rs:LL:COL
94+ StorageDead(_11); // scope 4 at $SRC_DIR/core/src/iter/range.rs:LL:COL
95+ _13 = discriminant(_10); // scope 1 at $DIR/range_iter.rs:+1:14 : +1:24
96+ switchInt(move _13) -> [0 : bb7, 1: bb9, otherwise: bb11]; // scope 1 at $DIR/range_iter.rs:+1:14: +1:24
97+ }
98+
99+ bb7 : {
100+ StorageDead(_10); // scope 1 at $DIR/range_iter.rs:+3:5 : +3:6
101+ StorageDead(_5); // scope 0 at $DIR/range_iter.rs:+3:5 : +3:6
102+ drop(_3) -> bb8; // scope 0 at $DIR/range_iter.rs:+4:1 : +4:2
103+ }
104+
105+ bb8 : {
106+ return; // scope 0 at $DIR/range_iter.rs:+4:2 : +4:2
107+ }
108+
109+ bb9 : {
110+ _14 = ((_10 as Some).0 : u32); // scope 1 at $DIR/range_iter.rs:+1:9: +1:10
111+ StorageLive(_15); // scope 2 at $DIR/range_iter.rs:+2:9 : +2:10
112+ _15 = &_3; // scope 2 at $DIR/range_iter.rs:+2:9 : +2:10
113+ StorageLive(_16); // scope 2 at $DIR/range_iter.rs:+2:9 : +2:13
114+ _16 = (_14,); // scope 2 at $DIR/range_iter.rs:+2:9 : +2:13
115+ _17 = <impl Fn(u32) as Fn<(u32,)>>::call(move _15, move _16) -> [return : bb10, unwind: bb12]; // scope 2 at $DIR/range_iter.rs:+2:9: +2:13
68116 // mir::Constant
69117 // + span : $DIR/range_iter.rs:22:9: 22:10
70118 // + literal : Const { ty: for<'a> extern "rust-call" fn(&'a impl Fn(u32), (u32,)) -> <impl Fn(u32) as FnOnce<(u32,)>>::Output {<impl Fn(u32) as Fn<(u32,)>>::call}, val: Value(<ZST>) }
71119 }
72120
73- bb6 : {
74- StorageDead(_11 ); // scope 2 at $DIR/range_iter.rs:+2:12 : +2:13
75- StorageDead(_10 ); // scope 2 at $DIR/range_iter.rs:+2:12 : +2:13
76- StorageDead(_7); // scope 1 at $DIR/range_iter.rs:+3:5 : +3:6
121+ bb10 : {
122+ StorageDead(_16 ); // scope 2 at $DIR/range_iter.rs:+2:12 : +2:13
123+ StorageDead(_15 ); // scope 2 at $DIR/range_iter.rs:+2:12 : +2:13
124+ StorageDead(_10); // scope 1 at $DIR/range_iter.rs:+3:5 : +3:6
77125 goto -> bb1; // scope 1 at $DIR/range_iter.rs:+1:5 : +3:6
78126 }
79127
80- bb7 : {
128+ bb11 : {
81129 unreachable; // scope 1 at $DIR/range_iter.rs:+1:14 : +1:24
82130 }
83131
84- bb8 (cleanup) : {
85- drop(_3) -> [return : bb9 , unwind terminate]; // scope 0 at $DIR/range_iter.rs:+4:1: +4:2
132+ bb12 (cleanup) : {
133+ drop(_3) -> [return : bb13 , unwind terminate]; // scope 0 at $DIR/range_iter.rs:+4:1: +4:2
86134 }
87135
88- bb9 (cleanup) : {
136+ bb13 (cleanup) : {
89137 resume; // scope 0 at $DIR/range_iter.rs:+0:1 : +4:2
90138 }
91139}
0 commit comments