// MIR for `num_to_digit` after PreCodegen fn num_to_digit(_1: char) -> u32 { debug num => _1; let mut _0: u32; let mut _4: std::option::Option; scope 1 (inlined char::methods::::is_digit) { debug self => _1; debug radix => const 8_u32; let _2: std::option::Option; let mut _7: &std::option::Option; scope 2 (inlined Option::::is_some) { debug self => _7; let mut _3: isize; } } scope 3 (inlined #[track_caller] Option::::unwrap) { debug self => _4; let mut _5: isize; let mut _6: !; scope 4 { debug val => _0; } } bb0: { StorageLive(_7); StorageLive(_2); _2 = char::methods::::to_digit(_1, const 8_u32) -> [return: bb1, unwind unreachable]; } bb1: { _3 = discriminant(_2); StorageDead(_7); StorageDead(_2); switchInt(move _3) -> [1: bb2, otherwise: bb7]; } bb2: { StorageLive(_4); _4 = char::methods::::to_digit(move _1, const 8_u32) -> [return: bb3, unwind unreachable]; } bb3: { _5 = discriminant(_4); switchInt(move _5) -> [0: bb4, 1: bb5, otherwise: bb6]; } bb4: { _6 = core::panicking::panic(const "called `Option::unwrap()` on a `None` value") -> unwind unreachable; } bb5: { _0 = move ((_4 as Some).0: u32); StorageDead(_4); goto -> bb8; } bb6: { unreachable; } bb7: { _0 = const 0_u32; goto -> bb8; } bb8: { return; } }