From c386c72d10540a4a9af89755df7aa3a35a079b64 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 19 Feb 2023 12:11:57 +0000 Subject: [PATCH] Check for procedure literals in `$` parameters --- src/check_expr.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 356f0aaa3..2ed77535c 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -5419,7 +5419,17 @@ gb_internal CALL_ARGUMENT_CHECKER(check_call_arguments_internal) { data->result_type = final_proc_type->Proc.results; data->gen_entity = gen_entity; - add_type_and_value(c, ce->proc, Addressing_Value, final_proc_type, {}); + + Ast *proc_lit = nullptr; + if (ce->proc->tav.value.kind == ExactValue_Procedure) { + Ast *vp = unparen_expr(ce->proc->tav.value.value_procedure); + if (vp && vp->kind == Ast_ProcLit) { + proc_lit = vp; + } + } + if (proc_lit == nullptr) { + add_type_and_value(c, ce->proc, Addressing_Value, final_proc_type, {}); + } } return err;