From 00909d4ade21b13d360bb90bbd59909a86b84249 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 2 Jun 2021 18:53:12 -0500 Subject: [PATCH] better handling for infinite loop prevention with overloads --- bin/onyx | Bin 367056 -> 367056 bytes include/onyxutils.h | 2 ++ src/onyxchecker.c | 29 +++++++++++++++++++---------- src/onyxutils.c | 2 +- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/bin/onyx b/bin/onyx index d2adfee361dafc9e740178955b5aa1ec001fe424..5369eee0cf0636f33b3ef2fe28a9a29be9dad1cb 100755 GIT binary patch delta 65419 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
K8**M441?1f^F?Ml%HWFNJOmp(Bte8f%Q| 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 diff --git a/include/onyxutils.h b/include/onyxutils.h index b9c9b219..0dc7f8bc 100644 --- a/include/onyxutils.h +++ b/include/onyxutils.h @@ -26,6 +26,8 @@ AstNode* symbol_resolve(Scope* start_scope, OnyxToken* tkn); AstNode* try_symbol_raw_resolve_from_node(AstNode* node, char* symbol); AstNode* try_symbol_resolve_from_node(AstNode* node, OnyxToken* token); +void build_all_overload_options(bh_arr(AstTyped *) overloads, bh_imap* all_overloads); + u32 char_to_base16_value(char x); // Returns the length after processing the string. diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 28f15d85..041cace8 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -1062,7 +1062,9 @@ CheckStatus check_struct_literal(AstStructLiteral* sl) { CHECK(expression, actual); // HACK HACK HACK - if ((*actual)->type == NULL && (*actual)->kind == Ast_Kind_Function) { + if ((*actual)->type == NULL && + (*actual)->entity != NULL && + (*actual)->entity->state <= Entity_State_Check_Types) { return Check_Yield_Macro; } @@ -1618,23 +1620,30 @@ CheckStatus check_function(AstFunction* func) { CheckStatus check_overloaded_function(AstOverloadedFunction* func) { b32 done = 1; - bh_arr_each(AstTyped *, node, func->overloads) { - if ( (*node)->kind != Ast_Kind_Function - && (*node)->kind != Ast_Kind_Polymorphic_Proc - && (*node)->kind != Ast_Kind_Overloaded_Function) { - onyx_report_error((*node)->token->pos, "Overload option not procedure. Got '%s'", - onyx_ast_node_kind_string((*node)->kind)); + bh_imap all_overloads; + bh_imap_init(&all_overloads, global_heap_allocator, 4); + build_all_overload_options(func->overloads, &all_overloads); + bh_arr_each(bh__imap_entry, entry, all_overloads.entries) { + AstTyped* node = (AstTyped *) entry->key; + if (node->kind == Ast_Kind_Overloaded_Function) continue; + + if ( node->kind != Ast_Kind_Function + && node->kind != Ast_Kind_Polymorphic_Proc) { + onyx_report_error(node->token->pos, "Overload option not procedure. Got '%s'", + onyx_ast_node_kind_string(node->kind)); + + bh_imap_free(&all_overloads); return Check_Error; } - if ((*node)->entity && - (*node)->entity->type != Entity_Type_Overloaded_Function && - (*node)->entity->state <= Entity_State_Check_Types) { + if (node->entity && node->entity->state <= Entity_State_Check_Types) { done = 0; } } + bh_imap_free(&all_overloads); + if (done) return Check_Success; else return Check_Yield_Macro; } diff --git a/src/onyxutils.c b/src/onyxutils.c index 18bdc5aa..6717d882 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -974,7 +974,7 @@ AstFunction* polymorphic_proc_build_only_header(AstPolyProc* pp, PolyProcLookupM // an "entries" array that, so long as nothing is ever removed from it, will maintain the order in // which entries were put into the map. This is useful because a simple recursive algorithm can // collect all the overloads into the map, and also use the map to provide a base case. -static void build_all_overload_options(bh_arr(AstTyped *) overloads, bh_imap* all_overloads) { +void build_all_overload_options(bh_arr(AstTyped *) overloads, bh_imap* all_overloads) { bh_arr_each(AstTyped *, node, overloads) { if (bh_imap_has(all_overloads, (u64) *node)) continue; -- 2.25.1