From 0e91298fd1d16de9bc0c11b9ccf0dcd7e43603a2 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 8 Jul 2018 11:03:56 +0100 Subject: Rename `free` to `delete` for non pointer types --- src/check_expr.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/check_expr.cpp') diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 6079fa202..8b3e6dfe7 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -4496,6 +4496,23 @@ CallArgumentData check_call_arguments(CheckerContext *c, Operand *operand, Type Array procs = proc_group_entities(c, *operand); + if (procs.count == 1) { + Ast *ident = operand->expr; + while (ident->kind == Ast_SelectorExpr) { + Ast *s = ident->SelectorExpr.selector; + ident = s; + } + + Entity *e = procs[0]; + + CallArgumentData data = {}; + CallArgumentError err = call_checker(c, call, e->type, e, operands, CallArgumentMode_ShowErrors, &data); + Entity *entity_to_use = data.gen_entity != nullptr ? data.gen_entity : e; + add_entity_use(c, ident, entity_to_use); + + return data; + } + ValidIndexAndScore *valids = gb_alloc_array(heap_allocator(), ValidIndexAndScore, procs.count); isize valid_count = 0; defer (gb_free(heap_allocator(), valids)); -- cgit v1.2.3