diff --git a/compiler/can/src/builtins.rs b/compiler/can/src/builtins.rs index af80221154..54552ac4df 100644 --- a/compiler/can/src/builtins.rs +++ b/compiler/can/src/builtins.rs @@ -1435,106 +1435,6 @@ fn num_int_cast(symbol: Symbol, var_store: &mut VarStore) -> Def { lowlevel_1(symbol, LowLevel::NumIntCast, var_store) } -/// Num.minI8: I8 -fn num_min_i8(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, i8::MIN, IntBound::Exact(IntWidth::I8)) -} - -/// Num.maxI8: I8 -fn num_max_i8(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, i8::MAX, IntBound::Exact(IntWidth::I8)) -} - -/// Num.minU8: U8 -fn num_min_u8(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, u8::MIN, IntBound::Exact(IntWidth::U8)) -} - -/// Num.maxU8: U8 -fn num_max_u8(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, u8::MAX, IntBound::Exact(IntWidth::U8)) -} - -/// Num.minI16: I16 -fn num_min_i16(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, i16::MIN, IntBound::Exact(IntWidth::I16)) -} - -/// Num.maxI16: I16 -fn num_max_i16(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, i16::MAX, IntBound::Exact(IntWidth::I16)) -} - -/// Num.minU16: U16 -fn num_min_u16(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, u16::MIN, IntBound::Exact(IntWidth::U16)) -} - -/// Num.maxU16: U16 -fn num_max_u16(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, u16::MAX, IntBound::Exact(IntWidth::U16)) -} - -/// Num.minI32: I32 -fn num_min_i32(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, i32::MIN, IntBound::Exact(IntWidth::I32)) -} - -/// Num.maxI32: I32 -fn num_max_i32(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, i32::MAX, IntBound::Exact(IntWidth::I32)) -} - -/// Num.minU32: U32 -fn num_min_u32(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, u32::MIN, IntBound::Exact(IntWidth::U32)) -} - -/// Num.maxU32: U32 -fn num_max_u32(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, u32::MAX, IntBound::Exact(IntWidth::U32)) -} - -/// Num.minI64: I64 -fn num_min_i64(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, i64::MIN, IntBound::Exact(IntWidth::I64)) -} - -/// Num.maxI64: I64 -fn num_max_i64(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, i64::MAX, IntBound::Exact(IntWidth::I64)) -} - -/// Num.minU64: U64 -fn num_min_u64(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, u64::MIN, IntBound::Exact(IntWidth::U64)) -} - -/// Num.maxU64: U64 -fn num_max_u64(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::(symbol, var_store, u64::MAX, IntBound::Exact(IntWidth::U64)) -} - -/// Num.minI128: I128 -fn num_min_i128(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::( - symbol, - var_store, - i128::MIN, - IntBound::Exact(IntWidth::I128), - ) -} - -/// Num.maxI128: I128 -fn num_max_i128(symbol: Symbol, var_store: &mut VarStore) -> Def { - int_min_or_max::( - symbol, - var_store, - i128::MAX, - IntBound::Exact(IntWidth::I128), - ) -} - /// List.isEmpty : List * -> Bool fn list_is_empty(symbol: Symbol, var_store: &mut VarStore) -> Def { let list_var = var_store.fresh(); @@ -5363,36 +5263,6 @@ fn defn_help( }) } -#[inline(always)] -fn int_min_or_max(symbol: Symbol, var_store: &mut VarStore, i: I128, bound: IntBound) -> Def -where - I128: Into, -{ - let int_var = var_store.fresh(); - let int_precision_var = var_store.fresh(); - let body = int::(int_var, int_precision_var, i, bound); - - let std = roc_builtins::std::types(); - let solved = std.get(&symbol).unwrap(); - let mut free_vars = roc_types::solved_types::FreeVars::default(); - let signature = roc_types::solved_types::to_type(&solved.0, &mut free_vars, var_store); - - let annotation = crate::def::Annotation { - signature, - introduced_variables: Default::default(), - region: Region::zero(), - aliases: Default::default(), - }; - - Def { - annotation: Some(annotation), - expr_var: int_var, - loc_expr: Loc::at_zero(body), - loc_pattern: Loc::at_zero(Pattern::Identifier(symbol)), - pattern_vars: SendMap::default(), - } -} - fn num_no_bound() -> NumericBound { NumericBound::None }