|  | - // MIR for `drop` before Inline | 
|  | + // MIR for `drop` after Inline | 
|  |  | 
|  | fn drop(_1: *mut Vec<A>, _2: *mut Option<B>) -> () { | 
|  | debug a => _1; | 
|  | debug b => _2; | 
|  | let mut _0: (); | 
|  | let _3: (); | 
|  | let mut _4: *mut std::vec::Vec<A>; | 
|  | let mut _5: *mut std::option::Option<B>; | 
|  | +     scope 1 (inlined drop_in_place::<Option<B>> - shim(Some(Option<B>))) { | 
|  | +         let mut _6: isize; | 
|  | +         let mut _7: isize; | 
|  | +     } | 
|  |  | 
|  | bb0: { | 
|  | StorageLive(_3); | 
|  | StorageLive(_4); | 
|  | _4 = copy _1; | 
|  | _3 = drop_in_place::<Vec<A>>(move _4) -> [return: bb1, unwind continue]; | 
|  | } | 
|  |  | 
|  | bb1: { | 
|  | StorageDead(_4); | 
|  | StorageDead(_3); | 
|  | StorageLive(_5); | 
|  | _5 = copy _2; | 
|  | -         _0 = drop_in_place::<Option<B>>(move _5) -> [return: bb2, unwind continue]; | 
|  | +         StorageLive(_6); | 
|  | +         _6 = discriminant((*_5)); | 
|  | +         switchInt(move _6) -> [0: bb2, otherwise: bb3]; | 
|  | } | 
|  |  | 
|  | bb2: { | 
|  | +         StorageDead(_6); | 
|  | StorageDead(_5); | 
|  | return; | 
|  | +     } | 
|  | + | 
|  | +     bb3: { | 
|  | +         drop((((*_5) as Some).0: B)) -> [return: bb2, unwind continue]; | 
|  | } | 
|  | } | 
|  |  |