Skip to content

Commit ad39831

Browse files
committed
Add int::MIN/MAX, Vec struct inference, and fix for-loop/Vec push codegen for non-primitive elements.
1 parent ed4b08c commit ad39831

1 file changed

Lines changed: 14 additions & 12 deletions

File tree

src/tc/builtins.rs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -226,18 +226,20 @@ impl TypeChecker {
226226
});
227227
}
228228

229-
let elem_type = self.vec_elem_type_from_receiver(&call_expr.args[0]).or_else(|| {
230-
let vec_ty = self.check_expr(&call_expr.args[0]).ok()?;
231-
if let Type::Ref {
232-
inner,
233-
mutable: false,
234-
} = vec_ty
235-
&& let Type::Vec { elem_type } = *inner
236-
{
237-
return Some(*elem_type);
238-
}
239-
None
240-
});
229+
let elem_type = self
230+
.vec_elem_type_from_receiver(&call_expr.args[0])
231+
.or_else(|| {
232+
let vec_ty = self.check_expr(&call_expr.args[0]).ok()?;
233+
if let Type::Ref {
234+
inner,
235+
mutable: false,
236+
} = vec_ty
237+
&& let Type::Vec { elem_type } = *inner
238+
{
239+
return Some(*elem_type);
240+
}
241+
None
242+
});
241243

242244
if let Some(elem_type) = elem_type {
243245
let resolved_elem = self.resolve_type_name(&elem_type)?;

0 commit comments

Comments
 (0)