// 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) { let _2: std::option::Option; scope 2 (inlined Option::::is_some) { let mut _3: isize; } } scope 3 (inlined #[track_caller] Option::::unwrap) { let mut _5: isize; let mut _6: !; scope 4 { } } bb0: { StorageLive(_2); _2 = char::methods::::to_digit(_1, const 8_u32) -> [return: bb1, unwind unreachable]; } bb1: { StorageLive(_3); _3 = discriminant(_2); switchInt(move _3) -> [1: bb2, 0: bb6, otherwise: bb8]; } bb2: { StorageDead(_3); StorageDead(_2); StorageLive(_4); _4 = char::methods::::to_digit(move _1, const 8_u32) -> [return: bb3, unwind unreachable]; } bb3: { StorageLive(_5); _5 = discriminant(_4); switchInt(move _5) -> [0: bb4, 1: bb5, otherwise: bb8]; } bb4: { _6 = option::unwrap_failed() -> unwind unreachable; } bb5: { _0 = move ((_4 as Some).0: u32); StorageDead(_5); StorageDead(_4); goto -> bb7; } bb6: { StorageDead(_3); StorageDead(_2); _0 = const 0_u32; goto -> bb7; } bb7: { return; } bb8: { unreachable; } }