1- // MIR for `enums` before ScalarReplacementOfAggregates 2+ // MIR for `enums` after ScalarReplacementOfAggregates 3 4 fn enums(_1: usize) -> usize { 5 debug a => _1; 6 let mut _0: usize; 7 let mut _2: std::option::Option<usize>; 8 let mut _3: usize; 9 let mut _4: isize; 10 scope 1 { 11 debug a => _5; 12 let _5: usize; 13 } 14 15 bb0: { 16 StorageLive(_2); 17 StorageLive(_3); 18 _3 = _1; 19 _2 = Option::<usize>::Some(move _3); 20 StorageDead(_3); 21 _4 = discriminant(_2); 22 switchInt(move _4) -> [1: bb1, otherwise: bb2]; 23 } 24 25 bb1: { 26 StorageLive(_5); 27 _5 = ((_2 as Some).0: usize); 28 _0 = _5; 29 StorageDead(_5); 30 goto -> bb3; 31 } 32 33 bb2: { 34 _0 = const 0_usize; 35 goto -> bb3; 36 } 37 38 bb3: { 39 StorageDead(_2); 40 return; 41 } 42 } 43 44