- // MIR for `flat` before ScalarReplacementOfAggregates + // MIR for `flat` after ScalarReplacementOfAggregates fn flat() -> () { let mut _0: (); // return place in scope 0 at $DIR/sroa.rs:+0:15: +0:15 let _1: u8; // in scope 0 at $DIR/sroa.rs:+1:15: +1:16 let _2: (); // in scope 0 at $DIR/sroa.rs:+1:18: +1:19 let _3: &str; // in scope 0 at $DIR/sroa.rs:+1:21: +1:22 let _4: std::option::Option; // in scope 0 at $DIR/sroa.rs:+1:24: +1:25 let mut _5: Foo; // in scope 0 at $DIR/sroa.rs:+1:30: +1:70 let mut _6: (); // in scope 0 at $DIR/sroa.rs:+1:45: +1:47 let mut _7: std::option::Option; // in scope 0 at $DIR/sroa.rs:+1:60: +1:68 scope 1 { debug a => _1; // in scope 1 at $DIR/sroa.rs:+1:15: +1:16 debug b => _2; // in scope 1 at $DIR/sroa.rs:+1:18: +1:19 debug c => _3; // in scope 1 at $DIR/sroa.rs:+1:21: +1:22 debug d => _4; // in scope 1 at $DIR/sroa.rs:+1:24: +1:25 scope 2 { scope 3 { scope 4 { scope 5 { } } } } } bb0: { StorageLive(_5); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 StorageLive(_6); // scope 0 at $DIR/sroa.rs:+1:45: +1:47 _6 = (); // scope 0 at $DIR/sroa.rs:+1:45: +1:47 StorageLive(_7); // scope 0 at $DIR/sroa.rs:+1:60: +1:68 _7 = Option::::Some(const -4_isize); // scope 0 at $DIR/sroa.rs:+1:60: +1:68 _5 = Foo { a: const 5_u8, b: move _6, c: const "a", d: move _7 }; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 // mir::Constant // + span: $DIR/sroa.rs:57:52: 57:55 // + literal: Const { ty: &str, val: Value(Slice(..)) } StorageDead(_7); // scope 0 at $DIR/sroa.rs:+1:69: +1:70 StorageDead(_6); // scope 0 at $DIR/sroa.rs:+1:69: +1:70 StorageLive(_1); // scope 0 at $DIR/sroa.rs:+1:15: +1:16 _1 = (_5.0: u8); // scope 0 at $DIR/sroa.rs:+1:15: +1:16 StorageLive(_2); // scope 0 at $DIR/sroa.rs:+1:18: +1:19 _2 = (_5.1: ()); // scope 0 at $DIR/sroa.rs:+1:18: +1:19 StorageLive(_3); // scope 0 at $DIR/sroa.rs:+1:21: +1:22 _3 = (_5.2: &str); // scope 0 at $DIR/sroa.rs:+1:21: +1:22 StorageLive(_4); // scope 0 at $DIR/sroa.rs:+1:24: +1:25 _4 = (_5.3: std::option::Option); // scope 0 at $DIR/sroa.rs:+1:24: +1:25 StorageDead(_5); // scope 0 at $DIR/sroa.rs:+1:70: +1:71 _0 = const (); // scope 0 at $DIR/sroa.rs:+0:15: +6:2 StorageDead(_4); // scope 0 at $DIR/sroa.rs:+6:1: +6:2 StorageDead(_3); // scope 0 at $DIR/sroa.rs:+6:1: +6:2 StorageDead(_2); // scope 0 at $DIR/sroa.rs:+6:1: +6:2 StorageDead(_1); // scope 0 at $DIR/sroa.rs:+6:1: +6:2 return; // scope 0 at $DIR/sroa.rs:+6:2: +6:2 } }