- // MIR for `g` before Inline
+ // MIR for `g` after Inline
  
  fn g() -> () {
      let mut _0: ();
      let _1: ();
  
      bb0: {
          StorageLive(_1);
          _1 = f::<fn() {main}>(main) -> [return: bb1, unwind unreachable];
      }
  
      bb1: {
          StorageDead(_1);
          _0 = const ();
          return;
      }
  }
  
