diff options
Diffstat (limited to 'dhall/src/syntax')
-rw-r--r-- | dhall/src/syntax/ast/expr.rs | 5 | ||||
-rw-r--r-- | dhall/src/syntax/text/parser.rs | 6 |
2 files changed, 5 insertions, 6 deletions
diff --git a/dhall/src/syntax/ast/expr.rs b/dhall/src/syntax/ast/expr.rs index d9badb9..b1a978f 100644 --- a/dhall/src/syntax/ast/expr.rs +++ b/dhall/src/syntax/ast/expr.rs @@ -7,9 +7,8 @@ use crate::semantics::Universe; use crate::syntax::visitor; use crate::syntax::*; -// TODO: `usize` was a mistake. Should use `u64`. -pub type Integer = isize; -pub type Natural = usize; +pub type Integer = i64; +pub type Natural = u64; pub type Double = NaiveDouble; /// Double with bitwise equality diff --git a/dhall/src/syntax/text/parser.rs b/dhall/src/syntax/text/parser.rs index 377f5e4..37f28e5 100644 --- a/dhall/src/syntax/text/parser.rs +++ b/dhall/src/syntax/text/parser.rs @@ -378,7 +378,7 @@ impl DhallParser { let s = input.as_str().trim(); if s.starts_with("0x") { let without_prefix = s.trim_start_matches("0x"); - usize::from_str_radix(without_prefix, 16) + u64::from_str_radix(without_prefix, 16) .map_err(|e| input.error(format!("{}", e))) } else { s.parse().map_err(|e| input.error(format!("{}", e))) @@ -391,7 +391,7 @@ impl DhallParser { if rest.starts_with("0x") { let without_prefix = sign.to_owned() + rest.trim_start_matches("0x"); - isize::from_str_radix(&without_prefix, 16) + i64::from_str_radix(&without_prefix, 16) .map_err(|e| input.error(format!("{}", e))) } else { s.parse().map_err(|e| input.error(format!("{}", e))) @@ -408,7 +408,7 @@ impl DhallParser { fn variable(input: ParseInput) -> ParseResult<V> { Ok(match_nodes!(input.into_children(); - [label(l), natural_literal(idx)] => V(l, idx), + [label(l), natural_literal(idx)] => V(l, idx as usize), [label(l)] => V(l, 0), )) } |