mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 06:44:46 +00:00
fix usize vs. u32/u64 conflict
This commit is contained in:
parent
e07057388b
commit
6a43be26d3
3 changed files with 21 additions and 26 deletions
|
@ -2792,9 +2792,9 @@ fn num_div_int(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||||
fn list_first(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
fn list_first(symbol: Symbol, var_store: &mut VarStore) -> Def {
|
||||||
let bool_var = var_store.fresh();
|
let bool_var = var_store.fresh();
|
||||||
let list_var = var_store.fresh();
|
let list_var = var_store.fresh();
|
||||||
let len_var = var_store.fresh();
|
let len_var = Variable::NAT;
|
||||||
let zero_var = var_store.fresh();
|
let zero_var = len_var;
|
||||||
let zero_precision_var = var_store.fresh();
|
let zero_precision_var = Variable::NATURAL;
|
||||||
let list_elem_var = var_store.fresh();
|
let list_elem_var = var_store.fresh();
|
||||||
let ret_var = var_store.fresh();
|
let ret_var = var_store.fresh();
|
||||||
|
|
||||||
|
|
|
@ -7494,7 +7494,9 @@ fn from_can_record_destruct<'a>(
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
pub enum IntPrecision {
|
pub enum IntPrecision {
|
||||||
|
Usize,
|
||||||
I128,
|
I128,
|
||||||
I64,
|
I64,
|
||||||
I32,
|
I32,
|
||||||
|
@ -7530,6 +7532,7 @@ fn int_precision_to_builtin(precision: IntPrecision) -> Builtin<'static> {
|
||||||
I32 => Builtin::Int32,
|
I32 => Builtin::Int32,
|
||||||
I16 => Builtin::Int16,
|
I16 => Builtin::Int16,
|
||||||
I8 => Builtin::Int8,
|
I8 => Builtin::Int8,
|
||||||
|
Usize => Builtin::Usize,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7628,16 +7631,8 @@ pub fn num_argument_to_int_or_float(
|
||||||
Content::Alias(Symbol::NUM_NAT, _, _)
|
Content::Alias(Symbol::NUM_NAT, _, _)
|
||||||
| Content::Alias(Symbol::NUM_NATURAL, _, _)
|
| Content::Alias(Symbol::NUM_NATURAL, _, _)
|
||||||
| Content::Alias(Symbol::NUM_AT_NATURAL, _, _) => {
|
| Content::Alias(Symbol::NUM_AT_NATURAL, _, _) => {
|
||||||
match ptr_bytes {
|
IntOrFloat::UnsignedIntType(IntPrecision::Usize)
|
||||||
1 => IntOrFloat::UnsignedIntType(IntPrecision::I8),
|
|
||||||
2 => IntOrFloat::UnsignedIntType(IntPrecision::I16),
|
|
||||||
4 => IntOrFloat::UnsignedIntType(IntPrecision::I32),
|
|
||||||
8 => IntOrFloat::UnsignedIntType(IntPrecision::I64),
|
|
||||||
_ => panic!(
|
|
||||||
"Invalid target for Num type argument: Roc does't support compiling to {}-bit systems.",
|
|
||||||
ptr_bytes * 8
|
|
||||||
),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
other => {
|
other => {
|
||||||
panic!(
|
panic!(
|
||||||
|
|
|
@ -961,19 +961,19 @@ fn define_integer_types(subs: &mut Subs) {
|
||||||
Variable::U8,
|
Variable::U8,
|
||||||
);
|
);
|
||||||
|
|
||||||
// integer_type(
|
integer_type(
|
||||||
// subs,
|
subs,
|
||||||
// Symbol::NUM_AT_NATURAL,
|
Symbol::NUM_AT_NATURAL,
|
||||||
// Symbol::NUM_NATURAL,
|
Symbol::NUM_NATURAL,
|
||||||
// Symbol::NUM_NAT,
|
Symbol::NUM_NAT,
|
||||||
// Variable::AT_NATURAL,
|
Variable::AT_NATURAL,
|
||||||
// Variable::NATURAL,
|
Variable::NATURAL,
|
||||||
// Variable::AT_INTEGER_NATURAL,
|
Variable::AT_INTEGER_NATURAL,
|
||||||
// Variable::INTEGER_NATURAL,
|
Variable::INTEGER_NATURAL,
|
||||||
// Variable::AT_NUM_INTEGER_NATURAL,
|
Variable::AT_NUM_INTEGER_NATURAL,
|
||||||
// Variable::NUM_INTEGER_NATURAL,
|
Variable::NUM_INTEGER_NATURAL,
|
||||||
// Variable::NAT,
|
Variable::NAT,
|
||||||
// );
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Subs {
|
impl Subs {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue