mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 14:24:45 +00:00
Use is_none
This commit is contained in:
parent
d57716ffe6
commit
e9ed1f3a58
1 changed files with 5 additions and 3 deletions
|
@ -90,13 +90,15 @@ where I: Stream<Item = char>,
|
||||||
.and(digits_before_decimal)
|
.and(digits_before_decimal)
|
||||||
.and(optional(char('.').with(digits_after_decimal)))
|
.and(optional(char('.').with(digits_after_decimal)))
|
||||||
.map(|((maybe_minus, int_digits), decimals): ((Option<char>, Vec<char>), Option<Vec<char>>)| {
|
.map(|((maybe_minus, int_digits), decimals): ((Option<char>, Vec<char>), Option<Vec<char>>)| {
|
||||||
// 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_str: String = int_digits.into_iter().collect();
|
||||||
let int_val = int_str.parse::<i64>().unwrap();
|
let int_val = int_str.parse::<i64>().unwrap();
|
||||||
|
|
||||||
match decimals {
|
match decimals {
|
||||||
None => {
|
None => {
|
||||||
if maybe_minus == None {
|
if is_positive {
|
||||||
Expr::Int(int_val as i64)
|
Expr::Int(int_val as i64)
|
||||||
} else {
|
} else {
|
||||||
Expr::Int(-int_val as i64)
|
Expr::Int(-int_val as i64)
|
||||||
|
@ -110,7 +112,7 @@ where I: Stream<Item = char>,
|
||||||
let decimal = decimal_str.parse::<u32>().unwrap();
|
let decimal = decimal_str.parse::<u32>().unwrap();
|
||||||
let numerator = (int_val * denom) + (decimal as i64);
|
let numerator = (int_val * denom) + (decimal as i64);
|
||||||
|
|
||||||
if maybe_minus == None {
|
if is_positive {
|
||||||
Expr::Ratio(numerator, denom as u64)
|
Expr::Ratio(numerator, denom as u64)
|
||||||
} else {
|
} else {
|
||||||
Expr::Ratio(-numerator, denom as u64)
|
Expr::Ratio(-numerator, denom as u64)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue