From e9ed1f3a58d98c65cf312c27621454dd9fc1e99c Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Thu, 14 Mar 2019 21:19:44 -0400 Subject: [PATCH] Use is_none --- src/parse.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/parse.rs b/src/parse.rs index 3836f85a3a..073d1550b2 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -90,13 +90,15 @@ where I: Stream, .and(digits_before_decimal) .and(optional(char('.').with(digits_after_decimal))) .map(|((maybe_minus, int_digits), decimals): ((Option, Vec), Option>)| { - // TODO check length of nums and build it up into an i62 if possible + let is_positive = maybe_minus.is_none(); + + // TODO check length of digits and make sure not to overflow let int_str: String = int_digits.into_iter().collect(); let int_val = int_str.parse::().unwrap(); match decimals { None => { - if maybe_minus == None { + if is_positive { Expr::Int(int_val as i64) } else { Expr::Int(-int_val as i64) @@ -110,7 +112,7 @@ where I: Stream, let decimal = decimal_str.parse::().unwrap(); let numerator = (int_val * denom) + (decimal as i64); - if maybe_minus == None { + if is_positive { Expr::Ratio(numerator, denom as u64) } else { Expr::Ratio(-numerator, denom as u64)