• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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