From: Brendan Hansen Date: Thu, 6 Jan 2022 00:20:45 +0000 (-0600) Subject: potential bug fixes X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=f837aea8d26b88e6c34979dfd5739b6324a5bfd1;p=onyx.git potential bug fixes --- diff --git a/src/symres.c b/src/symres.c index 038e2660..452fd877 100644 --- a/src/symres.c +++ b/src/symres.c @@ -1358,18 +1358,25 @@ static SymresStatus symres_polyquery(AstPolyQuery *query) { bh_arr_each(AstPolyParam, pp, query->proc->poly_params) { if (pp->kind == PPK_Baked_Value && pp->idx == idx) goto skip_introducing_symbol; } + symbol_introduce(curr_scope, param->local->token, (AstNode *) param->local); skip_introducing_symbol: + idx++; + } + + bh_arr_each(AstParam, param, query->function_header->params) { if (param->local->type_node != NULL) { resolved_a_symbol = 0; + + param->local->flags |= Ast_Flag_Symbol_Invisible; symres_type(¶m->local->type_node); + param->local->flags &= ~Ast_Flag_Symbol_Invisible; + onyx_clear_errors(); if (resolved_a_symbol) query->successful_symres = 1; } - - idx++; } scope_leave(); diff --git a/src/utils.c b/src/utils.c index 87bff0fc..efc77b50 100644 --- a/src/utils.c +++ b/src/utils.c @@ -384,7 +384,7 @@ AstTyped* find_matching_overload_by_arguments(bh_arr(OverloadOption) overloads, AstTyped *matched_overload = NULL; bh_arr_each(bh__imap_entry, entry, all_overloads.entries) { - AstTyped* node = (AstTyped *) entry->key; + AstTyped* node = (AstTyped *) strip_aliases((AstNode *) entry->key); arguments_copy(&args, param_args); AstFunction* overload = NULL;