stage1 支持结构体初始化
This commit is contained in:
1 parent
72ae6d6994
commit
9bdb7f892e
4 files changed
+72
-15
No files matched your search
+6
-7
@@ -139,7 +139,6 @@ static void sema_resolve_attrs(spl_sema_t *sema, spl_ast_node_ref_vec_t *raw,
|
||||
}
|
||||
}
|
||||
|
||||
static spl_lang_type_id_t sema_parse(spl_sema_t *sema, spl_ast_node_ref_t ref);
|
||||
static spl_lang_type_id_t sema_infer(spl_sema_t *sema, spl_ast_node_ref_t ref);
|
||||
static spl_lang_type_id_t sema_check(spl_sema_t *sema, spl_ast_node_ref_t ref,
|
||||
spl_lang_type_id_t expected);
|
||||
@@ -493,12 +492,12 @@ static spl_lang_type_id_t sema_check(spl_sema_t *sema, spl_ast_node_ref_t ref,
|
||||
}
|
||||
sema_check(sema, item->struct_init_item.expr, ft);
|
||||
}
|
||||
for (usize i = 0; i < nfields; ++i) {
|
||||
if (!seen[i]) {
|
||||
SPL_ERROR(&n->dbg, "missing field `%s`", vec_at(irn->agg_type.variants, i).name);
|
||||
sema->error_count++;
|
||||
}
|
||||
}
|
||||
// for (usize i = 0; i < nfields; ++i) {
|
||||
// if (!seen[i]) {
|
||||
// SPL_ERROR(&n->dbg, "missing field `%s`", vec_at(irn->agg_type.variants, i).name);
|
||||
// sema->error_count++;
|
||||
// }
|
||||
// }
|
||||
free(seen);
|
||||
n->resolved_lang_tid = expected;
|
||||
n->expected_lang_tid = 0;
|
||||
|
||||
Reference in new issue
Block a user