diff options
| author | Ginger Bill <bill@gingerbill.org> | 2017-06-26 18:20:24 +0100 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2017-06-26 18:20:24 +0100 |
| commit | c949ca2a5c8fe18fd965bd294454243c683a042c (patch) | |
| tree | 4df9a9fc6e697b43327db2a6f9e84c41ab19c7e7 /src/checker.cpp | |
| parent | d974b29f67ea536e1da033e41f3b03e05696f438 (diff) | |
Allow for named arguments for polymorphic procedures
Diffstat (limited to 'src/checker.cpp')
| -rw-r--r-- | src/checker.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index a7e3aa524..7d717e7cb 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -1169,7 +1169,9 @@ void add_type_info_type(Checker *c, Type *t) { } void check_procedure_later(Checker *c, ProcedureInfo info) { - map_set(&c->procs, hash_decl_info(info.decl), info); + if (info.decl != NULL) { + map_set(&c->procs, hash_decl_info(info.decl), info); + } } void check_procedure_later(Checker *c, AstFile *file, Token token, DeclInfo *decl, Type *type, AstNode *body, u64 tags) { @@ -1247,8 +1249,10 @@ Map<Entity *> generate_minimum_dependency_map(CheckerInfo *info, Entity *start) for_array(i, info->definitions.entries) { Entity *e = info->definitions.entries[i].value; if (e->scope->is_global) { - // NOTE(bill): Require runtime stuff - add_dependency_to_map(&map, info, e); + if (!is_type_gen_proc(e->type)) { + // NOTE(bill): Require runtime stuff + add_dependency_to_map(&map, info, e); + } } else if (e->kind == Entity_Procedure) { if ((e->Procedure.tags & ProcTag_export) != 0) { add_dependency_to_map(&map, info, e); |