aboutsummaryrefslogtreecommitdiff
path: root/src/checker.cpp
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2017-06-26 18:20:24 +0100
committerGinger Bill <bill@gingerbill.org>2017-06-26 18:20:24 +0100
commitc949ca2a5c8fe18fd965bd294454243c683a042c (patch)
tree4df9a9fc6e697b43327db2a6f9e84c41ab19c7e7 /src/checker.cpp
parentd974b29f67ea536e1da033e41f3b03e05696f438 (diff)
Allow for named arguments for polymorphic procedures
Diffstat (limited to 'src/checker.cpp')
-rw-r--r--src/checker.cpp10
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);