- // MIR for `f` before GVN + // MIR for `f` after GVN fn f() -> u32 { let mut _0: u32; let _1: u32; let mut _2: E; let mut _3: &U; let _4: U; let mut _5: &U; scope 1 { debug i => _1; } bb0: { StorageLive(_2); StorageLive(_3); _5 = const f::promoted[0]; _3 = &(*_5); _2 = copy ((*_3).1: E); - StorageLive(_1); + nop; _1 = copy ((_2 as A).1: u32); StorageDead(_3); StorageDead(_2); _0 = copy _1; - StorageDead(_1); + nop; return; } }