Update bigint/bigdecimal (#2585)

* Update bigint/bigdecimal

* clippy
This commit is contained in:
Jonathan Turner
2020-09-22 05:28:31 +12:00
committed by GitHub
parent 7a595827f1
commit 9b577b8679
35 changed files with 263 additions and 132 deletions

View File

@ -741,10 +741,14 @@ fn parse_arg(
None,
)
} else if let Ok(x) = lite_arg.item.parse::<f64>() {
(
SpannedExpression::new(Expression::decimal(x), lite_arg.span),
None,
)
if let Ok(x) = Expression::decimal(x) {
(SpannedExpression::new(x, lite_arg.span), None)
} else {
(
garbage(lite_arg.span),
Some(ParseError::mismatch("number", lite_arg.clone())),
)
}
} else {
(
garbage(lite_arg.span),
@ -952,14 +956,14 @@ mod test {
let registry = MockRegistry::new();
let result = parse_arg(SyntaxShape::Number, &registry, &input);
assert_eq!(result.1, None);
assert_eq!(result.0.expr, Expression::decimal(-32.2));
assert_eq!(result.0.expr, Expression::decimal(-32.2)?);
let raw = "32.2".to_string();
let input = raw.clone().spanned(Span::new(0, raw.len()));
let registry = MockRegistry::new();
let result = parse_arg(SyntaxShape::Number, &registry, &input);
assert_eq!(result.1, None);
assert_eq!(result.0.expr, Expression::decimal(32.2));
assert_eq!(result.0.expr, Expression::decimal(32.2)?);
let raw = "-34".to_string();
let input = raw.clone().spanned(Span::new(0, raw.len()));