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

@ -9,12 +9,12 @@ version = "0.19.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
bigdecimal = { version = "0.1.2", features = ["serde"] }
bigdecimal = {version = "0.2.0", features = ["serde"]}
codespan-reporting = "0.9.5"
derive-new = "0.5.8"
indexmap = { version = "1.6.0", features = ["serde-1"] }
indexmap = {version = "1.6.0", features = ["serde-1"]}
log = "0.4.11"
num-bigint = { version = "0.2.6", features = ["serde"] }
num-bigint = {version = "0.3.0", features = ["serde"]}
num-traits = "0.2.12"
serde = "1.0.115"
shellexpand = "2.0.0"

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()));