diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index 84005d9c79..ed93403072 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -2317,7 +2317,10 @@ pub fn (mut c Checker) array_init(mut array_init ast.ArrayInit) table.Type { } sym := c.table.get_type_symbol(array_init.elem_type) if array_init.has_default { - c.expr(array_init.default_expr) + default_typ := c.expr(array_init.default_expr) + c.check_expected(default_typ, array_init.elem_type) or { + c.error(err, array_init.default_expr.position()) + } } if sym.kind == .sum_type { if array_init.has_len && !array_init.has_default {