- // MIR for `copies` before ScalarReplacementOfAggregates + // MIR for `copies` after ScalarReplacementOfAggregates fn copies(_1: Foo) -> () { debug x => _1; let mut _0: (); let _2: Foo; + let _11: u8; + let _12: (); + let _13: &str; + let _14: std::option::Option; scope 1 { - debug y => _2; + debug y => Foo{ .0 => _11, .1 => _12, .2 => _13, .3 => _14, }; let _3: u8; scope 2 { debug t => _3; let _4: &str; scope 3 { debug u => _4; let _5: Foo; + let _7: u8; + let _8: (); + let _9: &str; + let _10: std::option::Option; scope 4 { - debug z => _5; + debug z => Foo{ .0 => _7, .1 => _8, .2 => _9, .3 => _10, }; let _6: (); scope 5 { debug a => _6; } } } } } bb0: { - StorageLive(_2); - _2 = _1; + StorageLive(_11); + StorageLive(_12); + StorageLive(_13); + StorageLive(_14); + nop; + _11 = (_1.0: u8); + _12 = (_1.1: ()); + _13 = (_1.2: &str); + _14 = (_1.3: std::option::Option); + nop; StorageLive(_3); - _3 = (_2.0: u8); + _3 = _11; StorageLive(_4); - _4 = (_2.2: &str); - StorageLive(_5); - _5 = _2; + _4 = _13; + StorageLive(_7); + StorageLive(_8); + StorageLive(_9); + StorageLive(_10); + nop; + _7 = _11; + _8 = _12; + _9 = _13; + _10 = _14; + nop; StorageLive(_6); - _6 = (_5.1: ()); + _6 = _8; _0 = const (); StorageDead(_6); - StorageDead(_5); + StorageDead(_7); + StorageDead(_8); + StorageDead(_9); + StorageDead(_10); + nop; StorageDead(_4); StorageDead(_3); - StorageDead(_2); + StorageDead(_11); + StorageDead(_12); + StorageDead(_13); + StorageDead(_14); + nop; return; } }