diff --git a/lib/std/core/floatparse.c3 b/lib/std/core/floatparse.c3 index 9b933630f..a5aa68659 100644 --- a/lib/std/core/floatparse.c3 +++ b/lib/std/core/floatparse.c3 @@ -117,8 +117,7 @@ macro double! decfloat(char[] chars, int $bits, int $emin, int sign) if ((c | 32) == 'e') { if (last_char == index) return NumberConversion.MALFORMED_FLOAT!; - long! e10 = str::to_long((String)chars[index + 1..]); - if (catch e10) return NumberConversion.MALFORMED_FLOAT!; + long e10 = str::to_long((String)chars[index + 1..]) ?? NumberConversion.MALFORMED_FLOAT!?; lrp += e10; } else if (index != last_char) @@ -404,8 +403,7 @@ macro double! hexfloat(char[] chars, int $bits, int $emin, int sign) long e2; if ((c | 32) == 'p') { - long! e2val = str::to_long((String)chars[index + 1..]); - if (catch e2val) return NumberConversion.MALFORMED_FLOAT!; + long e2val = str::to_long((String)chars[index + 1..]) ?? NumberConversion.MALFORMED_FLOAT!?; e2 = e2val; } e2 += 4 * rp - 32; diff --git a/lib/std/io/io_formatter_private.c3 b/lib/std/io/io_formatter_private.c3 index 64cc167d7..8a1a3071e 100644 --- a/lib/std/io/io_formatter_private.c3 +++ b/lib/std/io/io_formatter_private.c3 @@ -544,6 +544,5 @@ fn int! printf_parse_format_field( variant val = next_variant(args_ptr, args_len, args_index_ptr)?; if (!val.type.kindof.is_int()) return FormattingFault.INVALID_WIDTH_ARG!; uint! intval = types::variant_to_int(val, int); - if (catch intval) return FormattingFault.INVALID_WIDTH_ARG!; - return intval; + return intval ?? FormattingFault.INVALID_WIDTH_ARG!; }