diff options
Diffstat (limited to 'src/check_expr.cpp')
| -rw-r--r-- | src/check_expr.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 4fdffcaa3..cda9debfa 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -5675,7 +5675,7 @@ isize add_dependencies_from_unpacking(CheckerContext *c, Entity **lhs, isize lhs c->decl = decl; // will be reset by the 'defer' any way for_array(k, decl->deps.entries) { Entity *dep = decl->deps.entries[k].ptr; - add_declaration_dependency(c, dep); // TODO(bill): Should this be here? + add_declaration_dependency(c, dep); // TODO(bill): Should this be here? } } } @@ -7257,6 +7257,16 @@ ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *call, Type *t } Type *pt = base_type(proc_type); + + #if 0 + if (pt->kind == Type_Proc && pt->Proc.calling_convention == ProcCC_Odin) { + init_core_context(c->checker); + GB_ASSERT(t_context != nullptr); + GB_ASSERT(t_context->kind == Type_Named); + add_declaration_dependency(c, t_context->Named.type_name); + } + #endif + if (result_type == nullptr) { operand->mode = Addressing_NoValue; } else { @@ -7680,6 +7690,7 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type return kind; } + pl->decl = decl; check_procedure_later(ctx.checker, ctx.file, empty_token, decl, type, pl->body, pl->tags); } check_close_scope(&ctx); |