- // MIR for `main` before Derefer
+ // MIR for `main` after Derefer
  
  fn main() -> () {
      let mut _0: ();
      let mut _1: (i32, i32);
      let mut _3: &mut (i32, i32);
      let mut _5: &mut (i32, &mut (i32, i32));
      let mut _7: &mut (i32, &mut (i32, &mut (i32, i32)));
+     let mut _10: &mut (i32, &mut (i32, &mut (i32, i32)));
+     let mut _11: &mut (i32, &mut (i32, i32));
+     let mut _12: &mut (i32, i32);
+     let mut _13: &mut (i32, &mut (i32, &mut (i32, i32)));
+     let mut _14: &mut (i32, &mut (i32, i32));
+     let mut _15: &mut (i32, i32);
      scope 1 {
          debug a => _1;
          let mut _2: (i32, &mut (i32, i32));
          scope 2 {
              debug b => _2;
              let mut _4: (i32, &mut (i32, &mut (i32, i32)));
              scope 3 {
                  debug c => _4;
                  let mut _6: (i32, &mut (i32, &mut (i32, &mut (i32, i32))));
                  scope 4 {
                      debug d => _6;
                      let _8: &mut i32;
                      scope 5 {
                          debug x => _8;
                          let _9: &mut i32;
                          scope 6 {
                              debug y => _9;
                          }
                      }
                  }
              }
          }
      }
  
      bb0: {
          StorageLive(_1);
          _1 = (const 42_i32, const 43_i32);
          StorageLive(_2);
          StorageLive(_3);
          _3 = &mut _1;
          _2 = (const 99_i32, move _3);
          StorageDead(_3);
          StorageLive(_4);
          StorageLive(_5);
          _5 = &mut _2;
          _4 = (const 11_i32, move _5);
          StorageDead(_5);
          StorageLive(_6);
          StorageLive(_7);
          _7 = &mut _4;
          _6 = (const 13_i32, move _7);
          StorageDead(_7);
          StorageLive(_8);
-         _8 = &mut ((*((*((*(_6.1: &mut (i32, &mut (i32, &mut (i32, i32))))).1: &mut (i32, &mut (i32, i32)))).1: &mut (i32, i32))).1: i32);
+         _10 = deref_copy (_6.1: &mut (i32, &mut (i32, &mut (i32, i32))));
+         _11 = deref_copy ((*_10).1: &mut (i32, &mut (i32, i32)));
+         _12 = deref_copy ((*_11).1: &mut (i32, i32));
+         _8 = &mut ((*_12).1: i32);
          StorageLive(_9);
-         _9 = &mut ((*((*((*(_6.1: &mut (i32, &mut (i32, &mut (i32, i32))))).1: &mut (i32, &mut (i32, i32)))).1: &mut (i32, i32))).1: i32);
+         _13 = deref_copy (_6.1: &mut (i32, &mut (i32, &mut (i32, i32))));
+         _14 = deref_copy ((*_13).1: &mut (i32, &mut (i32, i32)));
+         _15 = deref_copy ((*_14).1: &mut (i32, i32));
+         _9 = &mut ((*_15).1: i32);
          _0 = const ();
          StorageDead(_9);
          StorageDead(_8);
          StorageDead(_6);
          StorageDead(_4);
          StorageDead(_2);
          StorageDead(_1);
          return;
      }
  }
  
