- // MIR for `foo` before CopyProp
+ // MIR for `foo` after CopyProp
  
  fn foo() -> i32 {
      let mut _0: i32;
      let _1: i32;
      let mut _3: bool;
      let _4: i32;
      scope 1 {
          debug x => _1;
          let _2: i32;
          scope 2 {
              debug y => _2;
          }
      }
  
      bb0: {
          StorageLive(_1);
          _1 = val() -> [return: bb1, unwind continue];
      }
  
      bb1: {
          StorageLive(_2);
          StorageLive(_3);
          _3 = cond() -> [return: bb2, unwind continue];
      }
  
      bb2: {
          switchInt(move _3) -> [0: bb4, otherwise: bb3];
      }
  
      bb3: {
          _2 = copy _1;
          goto -> bb6;
      }
  
      bb4: {
          StorageLive(_4);
          _4 = val() -> [return: bb5, unwind continue];
      }
  
      bb5: {
          StorageDead(_4);
          _2 = copy _1;
          goto -> bb6;
      }
  
      bb6: {
          StorageDead(_3);
          _0 = copy _2;
          StorageDead(_2);
          StorageDead(_1);
          return;
      }
  }
  
