diff --git a/src/parse/ast.rs b/src/parse/ast.rs index 2ddf451f4d..3f67985cbf 100644 --- a/src/parse/ast.rs +++ b/src/parse/ast.rs @@ -58,7 +58,8 @@ pub enum Expr<'a> { // Runtime errors MalformedStr(Box<[Loc]>), - MalformedNumber(Problem), + MalformedInt(Problem), + MalformedFloat(Problem), } #[derive(Clone, Debug, PartialEq)] diff --git a/src/parse/number_literal.rs b/src/parse/number_literal.rs index f82bb74a73..c0d617f584 100644 --- a/src/parse/number_literal.rs +++ b/src/parse/number_literal.rs @@ -111,12 +111,12 @@ where match f64_buf.parse::() { Ok(float) if float.is_finite() => Expr::Float(float), - _ => Expr::MalformedNumber(Problem::OutsideSupportedRange), + _ => Expr::MalformedFloat(Problem::OutsideSupportedRange), } } else { match before_decimal.parse::() { Ok(int_val) => Expr::Int(int_val), - Err(_) => Expr::MalformedNumber(Problem::OutsideSupportedRange), + Err(_) => Expr::MalformedInt(Problem::OutsideSupportedRange), } }; diff --git a/tests/test_parse.rs b/tests/test_parse.rs index 2b3f188eec..448a043812 100644 --- a/tests/test_parse.rs +++ b/tests/test_parse.rs @@ -317,7 +317,7 @@ mod test_parser { fn int_too_large() { assert_parses_to( (i64::MAX as i128 + 1).to_string().as_str(), - MalformedNumber(Problem::OutsideSupportedRange), + MalformedInt(Problem::OutsideSupportedRange), ); } @@ -325,7 +325,7 @@ mod test_parser { fn int_too_small() { assert_parses_to( (i64::MIN as i128 - 1).to_string().as_str(), - MalformedNumber(Problem::OutsideSupportedRange), + MalformedInt(Problem::OutsideSupportedRange), ); } @@ -371,7 +371,7 @@ mod test_parser { fn float_too_large() { assert_parses_to( format!("{}1.0", f64::MAX).as_str(), - MalformedNumber(Problem::OutsideSupportedRange), + MalformedFloat(Problem::OutsideSupportedRange), ); } @@ -379,7 +379,7 @@ mod test_parser { fn float_too_small() { assert_parses_to( format!("{}1.0", f64::MIN).as_str(), - MalformedNumber(Problem::OutsideSupportedRange), + MalformedFloat(Problem::OutsideSupportedRange), ); }