| 
2 | 2 | + // MIR for `main` after ConstProp  | 
3 | 3 | 
 
  | 
4 | 4 |   fn main() -> () {  | 
5 |  | -      let mut _0: ();                      // return place in scope 0 at $DIR/invalid_constant.rs:15:11: 15:11  | 
6 |  | -      let _1: std::option::Option<()>;     // in scope 0 at $DIR/invalid_constant.rs:16:5: 16:12  | 
7 |  | -      let mut _2: std::option::Option<std::option::Option<()>>; // in scope 0 at $DIR/invalid_constant.rs:16:7: 16:11  | 
8 |  | -      let _3: main::Union;                 // in scope 0 at $DIR/invalid_constant.rs:22:9: 22:22  | 
 | 5 | +      let mut _0: ();                      // return place in scope 0 at $DIR/invalid_constant.rs:13:11: 13:11  | 
 | 6 | +      let _1: main::InvalidChar;           // in scope 0 at $DIR/invalid_constant.rs:19:9: 19:22  | 
 | 7 | +      let mut _3: main::InvalidTag;        // in scope 0 at $DIR/invalid_constant.rs:26:25: 26:46  | 
 | 8 | +      let mut _5: main::NoVariants;        // in scope 0 at $DIR/invalid_constant.rs:33:35: 33:56  | 
9 | 9 |       scope 1 {  | 
10 |  | -          debug _invalid_char => _3;       // in scope 1 at $DIR/invalid_constant.rs:22:9: 22:22  | 
11 |  | -      }  | 
12 |  | -      scope 2 (inlined f) {                // at $DIR/invalid_constant.rs:16:5: 16:12  | 
13 |  | -          debug x => _2;                   // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
14 |  | -          let mut _4: isize;               // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
15 |  | -          let _5: std::option::Option<()>; // in scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
16 |  | -          scope 3 {  | 
17 |  | -              debug y => _5;               // in scope 3 at $DIR/invalid_constant.rs:16:5: 16:12  | 
 | 10 | +          debug _invalid_char => _1;       // in scope 1 at $DIR/invalid_constant.rs:19:9: 19:22  | 
 | 11 | +          let _2: [main::InvalidTag; 1];   // in scope 1 at $DIR/invalid_constant.rs:26:9: 26:21  | 
 | 12 | +          scope 2 {  | 
 | 13 | +              debug _invalid_tag => _2;    // in scope 2 at $DIR/invalid_constant.rs:26:9: 26:21  | 
 | 14 | +              let _4: [main::NoVariants; 1]; // in scope 2 at $DIR/invalid_constant.rs:33:9: 33:31  | 
 | 15 | +              scope 3 {  | 
 | 16 | +                  debug _enum_without_variants => _4; // in scope 3 at $DIR/invalid_constant.rs:33:9: 33:31  | 
 | 17 | +              }  | 
18 | 18 |           }  | 
19 | 19 |       }  | 
20 | 20 | 
 
  | 
21 | 21 |       bb0: {  | 
22 |  | -          discriminant(_2) = 0;            // scope 0 at $DIR/invalid_constant.rs:16:7: 16:11  | 
23 |  | --         _4 = discriminant(_2);           // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
24 |  | --         switchInt(move _4) -> [0_isize: bb3, otherwise: bb2]; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
25 |  | -+         _4 = const 0_isize;              // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
26 |  | -+         switchInt(const 0_isize) -> [0_isize: bb3, otherwise: bb2]; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
27 |  | -      }  | 
28 |  | -    | 
29 |  | -      bb1: {  | 
30 |  | --         _3 = const { Union { int: 0x110001 } }; // scope 0 at $DIR/invalid_constant.rs:22:25: 22:58  | 
31 |  | -+         _3 = const main::Union { int: 1114113_u32, chr: {transmute(0x00110001): char} }; // scope 0 at $DIR/invalid_constant.rs:22:25: 22:58  | 
 | 22 | +          StorageLive(_1);                 // scope 0 at $DIR/invalid_constant.rs:19:9: 19:22  | 
 | 23 | +-         _1 = const { InvalidChar { int: 0x110001 } }; // scope 0 at $DIR/invalid_constant.rs:19:25: 19:64  | 
 | 24 | ++         _1 = const InvalidChar { int: 1114113_u32, chr: {transmute(0x00110001): char} }; // scope 0 at $DIR/invalid_constant.rs:19:25: 19:64  | 
32 | 25 |                                            // ty::Const  | 
33 |  | -                                           // + ty: main::Union  | 
34 |  | --                                          // + val: Unevaluated(main::{constant#0}, [main::Union], None)  | 
 | 26 | +                                           // + ty: main::InvalidChar  | 
 | 27 | +-                                          // + val: Unevaluated(main::{constant#0}, [main::InvalidChar], None)  | 
35 | 28 | +                                          // + val: Value(Scalar(0x00110001))  | 
36 | 29 |                                            // mir::Constant  | 
37 |  | -                                           // + span: $DIR/invalid_constant.rs:22:25: 22:58  | 
38 |  | --                                          // + literal: Const { ty: main::Union, val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:8 ~ invalid_constant[726d]::main::{constant#0}), const_param_did: None }, substs: [main::Union], promoted: None }) }  | 
39 |  | -+                                          // + literal: Const { ty: main::Union, val: Value(Scalar(0x00110001)) }  | 
40 |  | -          nop;                             // scope 0 at $DIR/invalid_constant.rs:15:11: 23:2  | 
41 |  | -          return;                          // scope 0 at $DIR/invalid_constant.rs:23:2: 23:2  | 
42 |  | -      }  | 
43 |  | -    | 
44 |  | -      bb2: {  | 
45 |  | --         _5 = ((_2 as Some).0: std::option::Option<()>); // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
46 |  | --         _1 = _5;                         // scope 3 at $DIR/invalid_constant.rs:16:5: 16:12  | 
47 |  | -+         _5 = const Scalar(0x02): Option::<()>; // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
 | 30 | +                                           // + span: $DIR/invalid_constant.rs:19:25: 19:64  | 
 | 31 | +-                                          // + literal: Const { ty: main::InvalidChar, val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:7 ~ invalid_constant[726d]::main::{constant#0}), const_param_did: None }, substs: [main::InvalidChar], promoted: None }) }  | 
 | 32 | ++                                          // + literal: Const { ty: main::InvalidChar, val: Value(Scalar(0x00110001)) }  | 
 | 33 | +          StorageLive(_2);                 // scope 1 at $DIR/invalid_constant.rs:26:9: 26:21  | 
 | 34 | +          StorageLive(_3);                 // scope 1 at $DIR/invalid_constant.rs:26:25: 26:46  | 
 | 35 | +          (_3.0: u32) = const 4_u32;       // scope 1 at $DIR/invalid_constant.rs:26:25: 26:46  | 
 | 36 | +-         _2 = [move _3];                  // scope 1 at $DIR/invalid_constant.rs:26:24: 26:47  | 
 | 37 | ++         _2 = [const InvalidTag { int: 4_u32, e: Scalar(0x00000004): E }]; // scope 1 at $DIR/invalid_constant.rs:26:24: 26:47  | 
48 | 38 | +                                          // ty::Const  | 
49 |  | -+                                          // + ty: std::option::Option<()>  | 
50 |  | -+                                          // + val: Value(Scalar(0x02))  | 
 | 39 | ++                                          // + ty: main::InvalidTag  | 
 | 40 | ++                                          // + val: Value(Scalar(0x00000004))  | 
51 | 41 | +                                          // mir::Constant  | 
52 |  | -+                                          // + span: $DIR/invalid_constant.rs:16:5: 16:12  | 
53 |  | -+                                          // + literal: Const { ty: std::option::Option<()>, val: Value(Scalar(0x02)) }  | 
54 |  | -+         _1 = const Scalar(0x02): Option::<()>; // scope 3 at $DIR/invalid_constant.rs:16:5: 16:12  | 
 | 42 | ++                                          // + span: $DIR/invalid_constant.rs:26:24: 26:47  | 
 | 43 | ++                                          // + literal: Const { ty: main::InvalidTag, val: Value(Scalar(0x00000004)) }  | 
 | 44 | +          StorageDead(_3);                 // scope 1 at $DIR/invalid_constant.rs:26:46: 26:47  | 
 | 45 | +          StorageLive(_4);                 // scope 2 at $DIR/invalid_constant.rs:33:9: 33:31  | 
 | 46 | +          StorageLive(_5);                 // scope 2 at $DIR/invalid_constant.rs:33:35: 33:56  | 
 | 47 | +          (_5.0: u32) = const 0_u32;       // scope 2 at $DIR/invalid_constant.rs:33:35: 33:56  | 
 | 48 | +-         _4 = [move _5];                  // scope 2 at $DIR/invalid_constant.rs:33:34: 33:57  | 
 | 49 | ++         _4 = [const NoVariants { int: 0_u32, empty: Scalar(<ZST>): Empty }]; // scope 2 at $DIR/invalid_constant.rs:33:34: 33:57  | 
55 | 50 | +                                          // ty::Const  | 
56 |  | -+                                          // + ty: std::option::Option<()>  | 
57 |  | -+                                          // + val: Value(Scalar(0x02))  | 
 | 51 | ++                                          // + ty: main::NoVariants  | 
 | 52 | ++                                          // + val: Value(Scalar(0x00000000))  | 
58 | 53 | +                                          // mir::Constant  | 
59 |  | -+                                          // + span: $DIR/invalid_constant.rs:16:5: 16:12  | 
60 |  | -+                                          // + literal: Const { ty: std::option::Option<()>, val: Value(Scalar(0x02)) }  | 
61 |  | -          goto -> bb1;                     // scope 0 at $DIR/invalid_constant.rs:10:20: 10:21  | 
62 |  | -      }  | 
63 |  | -    | 
64 |  | -      bb3: {  | 
65 |  | -          discriminant(_1) = 0;            // scope 2 at $DIR/invalid_constant.rs:16:5: 16:12  | 
66 |  | -          goto -> bb1;                     // scope 0 at $DIR/invalid_constant.rs:9:17: 9:21  | 
 | 54 | ++                                          // + span: $DIR/invalid_constant.rs:33:34: 33:57  | 
 | 55 | ++                                          // + literal: Const { ty: main::NoVariants, val: Value(Scalar(0x00000000)) }  | 
 | 56 | +          StorageDead(_5);                 // scope 2 at $DIR/invalid_constant.rs:33:56: 33:57  | 
 | 57 | +          nop;                             // scope 0 at $DIR/invalid_constant.rs:13:11: 34:2  | 
 | 58 | +          StorageDead(_4);                 // scope 2 at $DIR/invalid_constant.rs:34:1: 34:2  | 
 | 59 | +          StorageDead(_2);                 // scope 1 at $DIR/invalid_constant.rs:34:1: 34:2  | 
 | 60 | +          StorageDead(_1);                 // scope 0 at $DIR/invalid_constant.rs:34:1: 34:2  | 
 | 61 | +          return;                          // scope 0 at $DIR/invalid_constant.rs:34:2: 34:2  | 
67 | 62 |       }  | 
68 | 63 |   }  | 
69 | 64 | 
 
  | 
0 commit comments