Fix crash caused by number related type error

This fixes an issue where number related type errors cause a crash.
For example, using a negative number for `Nat` like List.dropAt [1, 2, 3] -1` as in #5916.
so as f64 number.
This commit is contained in:
Yuki Omoto 2023-11-05 21:02:08 +09:00
parent c5a6f058df
commit 75dff53cc8
No known key found for this signature in database
GPG key ID: 9A7D6C91D5219717

View file

@ -9268,9 +9268,13 @@ fn assign_num_literal_expr<'a>(
num_value: IntOrFloatValue,
hole: &'a Stmt<'a>,
) -> Stmt<'a> {
let layout = layout_cache
.from_var(env.arena, variable, env.subs)
.unwrap();
let layout = match layout_cache.from_var(env.arena, variable, env.subs) {
Ok(layout) => layout,
Err(_) => match num_value {
IntOrFloatValue::Float(_) => Layout::default_float(),
IntOrFloatValue::Int(_) => Layout::default_integer(),
},
};
let literal =
make_num_literal(&layout_cache.interner, layout, num_str, num_value).to_expr_literal();