// MIR for `ezmap` after PreCodegen fn ezmap(_1: Option) -> Option { debug x => _1; let mut _0: std::option::Option; scope 1 (inlined map::) { debug slf => _1; debug f => const ZeroSized: {closure@$DIR/simple_option_map.rs:18:12: 18:15}; let mut _2: isize; let _3: i32; let mut _4: i32; scope 2 { debug x => _3; scope 3 (inlined ezmap::{closure#0}) { debug n => _3; } } } bb0: { StorageLive(_2); _2 = discriminant(_1); switchInt(move _2) -> [0: bb1, 1: bb2, otherwise: bb4]; } bb1: { _0 = const Option::::None; goto -> bb3; } bb2: { _3 = ((_1 as Some).0: i32); StorageLive(_4); _4 = Add(_3, const 1_i32); _0 = Option::::Some(move _4); StorageDead(_4); goto -> bb3; } bb3: { StorageDead(_2); return; } bb4: { unreachable; } } ALLOC0 (size: 8, align: 4) { 00 00 00 00 __ __ __ __ │ ....░░░░ }