- // MIR for `main` before DestinationPropagation
+ // MIR for `main` after DestinationPropagation
  
  fn main() -> () {
      let mut _0: ();                      // return place in scope 0 at $DIR/union.rs:+0:11: +0:11
      let _1: main::Un;                    // in scope 0 at $DIR/union.rs:+5:9: +5:11
      let mut _2: u32;                     // in scope 0 at $DIR/union.rs:+5:23: +5:28
      let mut _3: u32;                     // in scope 0 at $DIR/union.rs:+7:10: +7:26
      scope 1 {
          debug un => _1;                  // in scope 1 at $DIR/union.rs:+5:9: +5:11
          scope 2 {
          }
          scope 3 (inlined std::mem::drop::<u32>) { // at $DIR/union.rs:15:5: 15:27
              debug _x => _3;              // in scope 3 at $SRC_DIR/core/src/mem/mod.rs:LL:COL
          }
      }
  
      bb0: {
          StorageLive(_1);                 // scope 0 at $DIR/union.rs:+5:9: +5:11
          StorageLive(_2);                 // scope 0 at $DIR/union.rs:+5:23: +5:28
          _2 = val() -> bb1;               // scope 0 at $DIR/union.rs:+5:23: +5:28
                                           // mir::Constant
                                           // + span: $DIR/union.rs:13:23: 13:26
                                           // + literal: Const { ty: fn() -> u32 {val}, val: Value(<ZST>) }
      }
  
      bb1: {
          StorageDead(_2);                 // scope 0 at $DIR/union.rs:+5:29: +5:30
          StorageLive(_3);                 // scope 1 at $DIR/union.rs:+7:10: +7:26
          StorageDead(_3);                 // scope 1 at $DIR/union.rs:+7:26: +7:27
          StorageDead(_1);                 // scope 0 at $DIR/union.rs:+8:1: +8:2
          return;                          // scope 0 at $DIR/union.rs:+8:2: +8:2
      }
  }
  
