- // 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); + _2 = copy ((*_5).1: E); StorageLive(_1); - _1 = copy ((_2 as A).1: u32); + _1 = const 0_u32; StorageDead(_3); StorageDead(_2); - _0 = copy _1; + _0 = const 0_u32; StorageDead(_1); return; } }