From cfcd65294adeb4ca3d7fb47fd6df57764fd24363 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 29 Aug 2021 19:37:16 -0500 Subject: [PATCH] bugfixes with aliasing to poly structs; added 'Map' and 'Set' aliases --- bin/onyx | Bin 426784 -> 426784 bytes core/builtin.onyx | 19 ++- core/wasi/env.onyx | 2 +- include/onyxastnodes.h | 2 +- modules/bmfont/types.onyx | 4 +- modules/json/encoder.onyx | 2 +- modules/ttf/ttf.onyx | 4 +- modules/ui/components/scrollable_region.onyx | 2 +- modules/ui/components/workspace.onyx | 2 +- modules/ui/font.onyx | 2 +- modules/ui/ui.onyx | 2 +- modules/wasm_utils/types.onyx | 8 +- src/onyxchecker.c | 7 +- src/onyxentities.c | 128 +++++++++---------- src/onyxparser.c | 23 +--- src/onyxsymres.c | 2 +- src/onyxtypes.c | 13 +- tests/i32map.onyx | 2 +- 18 files changed, 116 insertions(+), 108 deletions(-) diff --git a/bin/onyx b/bin/onyx index 15df32450febd4af2954ef117f5f9457407ef32f..a5bf1b64868174f15928ee78f9cfd75223682a24 100755 GIT binary patch delta 78861 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ÄScP7f{2DwsNo)EUia4fsnD742BT_ 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 O=MFa1g_W5@d;BjzmG;j7 delta 79055 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 u&JxAcIJ(G8bv^N ^BMFont_Glyph { return map.get_ptr(^glyphs, ~~char); diff --git a/modules/json/encoder.onyx b/modules/json/encoder.onyx index 84dceba8..a3aeab46 100644 --- a/modules/json/encoder.onyx +++ b/modules/json/encoder.onyx @@ -80,7 +80,7 @@ encode :: #match { return .None; }, - (w: ^io.Writer, v: map.Map(str, $T)) -> Encoding_Error { + (w: ^io.Writer, v: Map(str, $T)) -> Encoding_Error { io.write_byte(w, #char "{"); for i: v.entries.count { diff --git a/modules/ttf/ttf.onyx b/modules/ttf/ttf.onyx index 819952e2..07a68b50 100644 --- a/modules/ttf/ttf.onyx +++ b/modules/ttf/ttf.onyx @@ -10,7 +10,7 @@ True_Type_Font :: struct { entry_selector : u16; range_shift : u16; - tables : map.Map(u32, TTF_Table_Info); + tables : Map(u32, TTF_Table_Info); char_maps : [..] TTF_Cmap; version : u32; @@ -99,7 +99,7 @@ TTF_Cmap4 :: struct { range_shift : u16; segments : [..] TTF_Segment; - cache : map.Map(i32, i32); + cache : Map(i32, i32); } TTF_Segment :: struct { diff --git a/modules/ui/components/scrollable_region.onyx b/modules/ui/components/scrollable_region.onyx index 5b9d188d..9511e4bd 100644 --- a/modules/ui/components/scrollable_region.onyx +++ b/modules/ui/components/scrollable_region.onyx @@ -10,7 +10,7 @@ Scrollable_Region_State :: struct { } #private -scrollable_region_states : map.Map(UI_Id, Scrollable_Region_State); +scrollable_region_states : Map(UI_Id, Scrollable_Region_State); Scrollable_Region_Controls :: struct { minimum_y := 0.0f; diff --git a/modules/ui/components/workspace.onyx b/modules/ui/components/workspace.onyx index 4977611f..d5f4f275 100644 --- a/modules/ui/components/workspace.onyx +++ b/modules/ui/components/workspace.onyx @@ -21,7 +21,7 @@ Workspace_State :: struct { } #private -workspace_states : map.Map(UI_Id, Workspace_State); +workspace_states : Map(UI_Id, Workspace_State); workspace_start :: (use r: Rectangle, site := #callsite, state: ^Workspace_State = null) { hash := get_site_hash(site, 0); diff --git a/modules/ui/font.onyx b/modules/ui/font.onyx index 874126e1..f2f809ff 100644 --- a/modules/ui/font.onyx +++ b/modules/ui/font.onyx @@ -71,7 +71,7 @@ create_font :: (bmfont_data: [] u8, font_texture_data: [] u8) -> Font { Font_Index :: i32; -#private font_registry : map.Map(Font_Index, Font); +#private font_registry : Map(Font_Index, Font); register_font :: (index: Font_Index, font: Font) { assert(!map.has(^font_registry, index), "Font with this index already exists."); map.put(^font_registry, index, font); diff --git a/modules/ui/ui.onyx b/modules/ui/ui.onyx index 9b41a7e1..4fb159f6 100644 --- a/modules/ui/ui.onyx +++ b/modules/ui/ui.onyx @@ -178,7 +178,7 @@ Animation_Theme :: struct { // Animation states are stored globally as there is not much to the state of a button. // Forcing the end user to store a structure for each button that is just the animation // state of the component feels very wrong. -#private animation_states : map.Map(UI_Id, Animation_State); +#private animation_states : Map(UI_Id, Animation_State); Animation_State :: struct { hover_time := 0.0f; diff --git a/modules/wasm_utils/types.onyx b/modules/wasm_utils/types.onyx index 4bc34076..446a6c32 100644 --- a/modules/wasm_utils/types.onyx +++ b/modules/wasm_utils/types.onyx @@ -16,7 +16,7 @@ WasmSection :: enum { DataCount :: 0x0c; } -#add_match hash.to_u32, (w: WasmSection) -> u32 { +#add_match hash.to_u32, macro (w: WasmSection) -> u32 { return hash.to_u32(cast(u32) w); } @@ -25,13 +25,13 @@ WasmBinary :: struct { // Section number -> Offset+size of data // This does not work for custom sections, as they all have the same section number - sections: map.Map(WasmSection, WasmSectionData); + sections: Map(WasmSection, WasmSectionData); // Custom section name -> Offset into data // So there is a custom section location that maps the name of the custom section // to the offset into the file. The backing-store for the keys is just the data // itself, as the names are in the data for the binary. - custom_section_locations : map.Map(str, i32); + custom_section_locations : Map(str, i32); } WasmSectionData :: struct { @@ -109,7 +109,7 @@ WasmElement :: struct { WasmData :: struct { memory_index : u32; offset : WasmInstruction; - + data : [] u8; } diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 7f3c359d..dd8b2d4a 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -1619,8 +1619,11 @@ CheckStatus check_expression(AstTyped** pexpr) { CHECK(type, (AstType *) expr); } - if (type_build_from_ast(context.ast_alloc, (AstType*) expr) == NULL) { - YIELD(expr->token->pos, "Trying to construct type."); + // Don't try to construct a polystruct ahead of time because you can't. + if (expr->kind != Ast_Kind_Poly_Struct_Type) { + if (type_build_from_ast(context.ast_alloc, (AstType*) expr) == NULL) { + YIELD(expr->token->pos, "Trying to construct type."); + } } expr->type = &basic_types[Basic_Kind_Type_Index]; diff --git a/src/onyxentities.c b/src/onyxentities.c index 1f3b84f5..7a938621 100644 --- a/src/onyxentities.c +++ b/src/onyxentities.c @@ -24,7 +24,7 @@ static i32 entity_compare(Entity* e1, Entity* e2) { else if (e1->micro_attempts != e2->micro_attempts) return (i32) (e1->micro_attempts - e2->micro_attempts); else - return (i32) (e1->id - e2->id); + return (i32) (e1->id - e2->id); } #define eh_parent(index) (((index) - 1) / 2) @@ -32,37 +32,37 @@ static i32 entity_compare(Entity* e1, Entity* e2) { #define eh_rchild(index) (((index) * 2) + 2) static void eh_shift_up(EntityHeap* entities, i32 index) { - while (index > 0 && entity_compare(entities->entities[eh_parent(index)], entities->entities[index]) > 0) { - Entity* tmp = entities->entities[eh_parent(index)]; - entities->entities[eh_parent(index)] = entities->entities[index]; - entities->entities[index] = tmp; + while (index > 0 && entity_compare(entities->entities[eh_parent(index)], entities->entities[index]) > 0) { + Entity* tmp = entities->entities[eh_parent(index)]; + entities->entities[eh_parent(index)] = entities->entities[index]; + entities->entities[index] = tmp; - index = eh_parent(index); - } + index = eh_parent(index); + } } static void eh_shift_down(EntityHeap* entities, i32 index) { - i32 min_index = index; - - i32 l = eh_lchild(index); - if (l < bh_arr_length(entities->entities) - && entity_compare(entities->entities[l], entities->entities[min_index]) < 0) { - min_index = l; - } - - i32 r = eh_rchild(index); - if (r < bh_arr_length(entities->entities) - && entity_compare(entities->entities[r], entities->entities[min_index]) < 0) { - min_index = r; - } - - if (index != min_index) { - Entity* tmp = entities->entities[min_index]; - entities->entities[min_index] = entities->entities[index]; - entities->entities[index] = tmp; - - eh_shift_down(entities, min_index); - } + i32 min_index = index; + + i32 l = eh_lchild(index); + if (l < bh_arr_length(entities->entities) + && entity_compare(entities->entities[l], entities->entities[min_index]) < 0) { + min_index = l; + } + + i32 r = eh_rchild(index); + if (r < bh_arr_length(entities->entities) + && entity_compare(entities->entities[r], entities->entities[min_index]) < 0) { + min_index = r; + } + + if (index != min_index) { + Entity* tmp = entities->entities[min_index]; + entities->entities[min_index] = entities->entities[index]; + entities->entities[index] = tmp; + + eh_shift_down(entities, min_index); + } } void entity_heap_init(EntityHeap* entities) { @@ -84,12 +84,12 @@ Entity* entity_heap_register(EntityHeap* entities, Entity e) { void entity_heap_insert_existing(EntityHeap* entities, Entity* e) { if (e->entered_in_queue) return; - if (entities->entities == NULL) { - bh_arr_new(global_heap_allocator, entities->entities, 128); - } + if (entities->entities == NULL) { + bh_arr_new(global_heap_allocator, entities->entities, 128); + } - bh_arr_push(entities->entities, e); - eh_shift_up(entities, bh_arr_length(entities->entities) - 1); + bh_arr_push(entities->entities, e); + eh_shift_up(entities, bh_arr_length(entities->entities) - 1); e->entered_in_queue = 1; entities->state_count[e->state]++; @@ -104,7 +104,7 @@ Entity* entity_heap_insert(EntityHeap* entities, Entity e) { } Entity* entity_heap_top(EntityHeap* entities) { - return entities->entities[0]; + return entities->entities[0]; } void entity_heap_change_top(EntityHeap* entities, Entity* new_top) { @@ -116,9 +116,9 @@ void entity_heap_change_top(EntityHeap* entities, Entity* new_top) { entities->all_count[entities->entities[0]->state][entities->entities[0]->type]--; entities->all_count[new_top->state][new_top->type]++; - - entities->entities[0] = new_top; - eh_shift_down(entities, 0); + + entities->entities[0] = new_top; + eh_shift_down(entities, 0); } void entity_heap_remove_top(EntityHeap* entities) { @@ -127,9 +127,9 @@ void entity_heap_remove_top(EntityHeap* entities) { entities->all_count[entities->entities[0]->state][entities->entities[0]->type]--; entities->entities[0]->entered_in_queue = 0; - entities->entities[0] = entities->entities[bh_arr_length(entities->entities) - 1]; - bh_arr_pop(entities->entities); - eh_shift_down(entities, 0); + entities->entities[0] = entities->entities[bh_arr_length(entities->entities) - 1]; + bh_arr_pop(entities->entities); + eh_shift_down(entities, 0); } // NOTE(Brendan Hansen): Uses the entity heap in the context structure @@ -143,17 +143,17 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s } else { \ entity_heap_insert_existing(entities, entity); \ } \ - + EntityHeap* entities = &context.entities; Entity* entity; - + Entity ent; ent.id = entities->next_id++; ent.state = Entity_State_Resolve_Symbols; ent.package = package; ent.scope = scope; - + switch (node->kind) { case Ast_Kind_Load_File: { ent.state = Entity_State_Parse; @@ -162,7 +162,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s ENTITY_INSERT(ent); break; } - + case Ast_Kind_Load_Path: { ent.state = Entity_State_Parse; ent.type = Entity_Type_Load_Path; @@ -170,7 +170,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s ENTITY_INSERT(ent); break; } - + case Ast_Kind_Binding: { ent.state = Entity_State_Introduce_Symbols; ent.type = Entity_Type_Binding; @@ -178,19 +178,19 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s ENTITY_INSERT(ent); break; } - + case Ast_Kind_Function: { if ((node->flags & Ast_Flag_Foreign) != 0) { ent.type = Entity_Type_Foreign_Function_Header; ent.function = (AstFunction *) node; ENTITY_INSERT(ent); - + } else { ent.type = Entity_Type_Function_Header; ent.function = (AstFunction *) node; ENTITY_INSERT(ent); ((AstFunction *) node)->entity_header = entity; - + ent.id = entities->next_id++; ent.type = Entity_Type_Function; ent.function = (AstFunction *) node; @@ -199,25 +199,25 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s } break; } - + case Ast_Kind_Overloaded_Function: { ent.type = Entity_Type_Overloaded_Function; ent.overloaded_function = (AstOverloadedFunction *) node; ENTITY_INSERT(ent); break; } - + case Ast_Kind_Global: { if ((node->flags & Ast_Flag_Foreign) != 0) { ent.type = Entity_Type_Foreign_Global_Header; ent.global = (AstGlobal *) node; ENTITY_INSERT(ent); - + } else { ent.type = Entity_Type_Global_Header; ent.global = (AstGlobal *) node; ENTITY_INSERT(ent); - + ent.id = entities->next_id++; ent.type = Entity_Type_Global; ent.global = (AstGlobal *) node; @@ -225,21 +225,21 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s } break; } - + case Ast_Kind_StrLit: { ent.type = Entity_Type_String_Literal; ent.strlit = (AstStrLit *) node; ENTITY_INSERT(ent); break; } - + case Ast_Kind_File_Contents: { ent.type = Entity_Type_File_Contents; ent.file_contents = (AstFileContents *) node; ENTITY_INSERT(ent); break; } - + case Ast_Kind_Struct_Type: { ent.type = Entity_Type_Struct_Member_Default; ent.type_alias = (AstType *) node; @@ -249,7 +249,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s ent.id = entities->next_id++; // fallthrough } - + case Ast_Kind_Poly_Struct_Type: case Ast_Kind_Type_Alias: { ent.type = Entity_Type_Type_Alias; @@ -262,14 +262,14 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s break; } - + case Ast_Kind_Enum_Type: { ent.type = Entity_Type_Enum; ent.enum_type = (AstEnumType *) node; ENTITY_INSERT(ent); break; } - + case Ast_Kind_Use: { if (((AstUse *) node)->expr->kind == Ast_Kind_Package) { ent.state = Entity_State_Resolve_Symbols; @@ -282,12 +282,12 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s ENTITY_INSERT(ent); break; } - + case Ast_Kind_Memres: { ent.type = Entity_Type_Memory_Reservation_Type; ent.mem_res = (AstMemRes *) node; ENTITY_INSERT(ent); - + ent.id = entities->next_id++; ent.type = Entity_Type_Memory_Reservation; ent.mem_res = (AstMemRes *) node; @@ -301,7 +301,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s ENTITY_INSERT(ent); break; } - + case Ast_Kind_Polymorphic_Proc: { ent.type = Entity_Type_Polymorphic_Proc; ent.poly_proc = (AstPolyProc *) node; @@ -322,7 +322,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s ent.type = Entity_Type_Error; ent.error = (AstDirectiveError *) node; ENTITY_INSERT(ent); - break; + break; } case Ast_Kind_Directive_Export: @@ -341,7 +341,7 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s ENTITY_INSERT(ent); break; } - + default: { ent.type = Entity_Type_Expression; ent.expr = (AstTyped *) node; @@ -349,6 +349,6 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s break; } } - + node->entity = entity; } diff --git a/src/onyxparser.c b/src/onyxparser.c index 83e8173f..74126e77 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -2425,21 +2425,11 @@ static AstMacro* parse_macro(OnyxParser* parser) { } static AstTyped* parse_top_level_expression(OnyxParser* parser) { - #if 0 - if (parser->curr->type == Token_Type_Keyword_Proc) { - OnyxToken* proc_token = expect_token(parser, Token_Type_Keyword_Proc); - onyx_report_warning(proc_token->pos, "Warning: 'proc' is a deprecated keyword."); - AstFunction* func_node = parse_function_definition(parser, proc_token); - - return (AstTyped *) func_node; - } - #endif - if (parser->curr->type == Token_Type_Keyword_Global) return parse_global_declaration(parser); if (parser->curr->type == Token_Type_Keyword_Struct) return (AstTyped *) parse_struct(parser); if (parser->curr->type == Token_Type_Keyword_Enum) return (AstTyped *) parse_enum_declaration(parser); if (parser->curr->type == Token_Type_Keyword_Macro) return (AstTyped *) parse_macro(parser); - + if (parse_possible_directive(parser, "type")) { AstTypeAlias* alias = make_node(AstTypeAlias, Ast_Kind_Type_Alias); alias->to = parse_type(parser); @@ -2452,7 +2442,7 @@ static AstTyped* parse_top_level_expression(OnyxParser* parser) { AstOverloadedFunction* ofunc = parse_overloaded_function(parser, directive_token); return (AstTyped *) ofunc; } - + return parse_expression(parser, 1); } @@ -2462,7 +2452,7 @@ static AstBinding* parse_top_level_binding(OnyxParser* parser, OnyxToken* symbol AstTyped* node = parse_top_level_expression(parser); if (parser->hit_unexpected_token || node == NULL) return NULL; - + // CLEANUP if (node->kind == Ast_Kind_Function) { AstFunction* func = (AstFunction *) node; @@ -2504,11 +2494,8 @@ static AstBinding* parse_top_level_binding(OnyxParser* parser, OnyxToken* symbol "%b", symbol->text, symbol->length); } - if (node->kind == Ast_Kind_Type_Alias) { - node->token = symbol; - } - - if (node_is_type((AstNode *) node)); + if (node->kind == Ast_Kind_Type_Alias) node->token = symbol; + else if (node_is_type((AstNode *) node)); else if (node->kind == Ast_Kind_Package); else if (node->kind == Ast_Kind_NumLit); else { diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 1ea73838..18f6ef5e 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -719,7 +719,7 @@ static SymresStatus symres_directive_solidify(AstDirectiveSolidify** psolid) { solid->poly_proc = potentially_resolved_proc; } - + if (!solid->poly_proc || solid->poly_proc->kind != Ast_Kind_Polymorphic_Proc) { onyx_report_error(solid->token->pos, "Expected polymorphic procedure in #solidify directive."); return Symres_Error; diff --git a/src/onyxtypes.c b/src/onyxtypes.c index ec20f8be..ed4f955e 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -496,19 +496,22 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { return ((AstTypeRawAlias *) type_node)->to; case Ast_Kind_Poly_Struct_Type: - onyx_report_error(type_node->token->pos, - "This structure is polymorphic, which means you need to provide arguments to it to make it a concrete structure. " - "This error message is probably in the wrong place, so look through your code for uses of this struct."); + //onyx_report_error(type_node->token->pos, + // "This structure is polymorphic, which means you need to provide arguments to it to make it a concrete structure. " + // "This error message is probably in the wrong place, so look through your code for uses of this struct."); + return NULL; break; case Ast_Kind_Poly_Call_Type: { AstPolyCallType* pc_type = (AstPolyCallType *) type_node; + pc_type->callee = (AstType *) strip_aliases((AstNode *) pc_type->callee); if (!(pc_type->callee && pc_type->callee->kind == Ast_Kind_Poly_Struct_Type)) { - // If it is an unresolved field access, just return because an error will be printed elsewhere. - if (pc_type->callee->kind == Ast_Kind_Field_Access) return NULL; + // If it is an unresolved field access or symbol, just return because an error will be printed elsewhere. + if (pc_type->callee->kind == Ast_Kind_Field_Access || pc_type->callee->kind == Ast_Kind_Symbol) return NULL; onyx_report_error(pc_type->token->pos, "Cannot instantiate a concrete type off of a non-polymorphic type."); + onyx_report_error(pc_type->callee->token->pos, "Here is the type trying to be instantiated. (%s)", onyx_ast_node_kind_string(pc_type->callee->kind)); return NULL; } diff --git a/tests/i32map.onyx b/tests/i32map.onyx index 05ab5d3a..a61bc63a 100644 --- a/tests/i32map.onyx +++ b/tests/i32map.onyx @@ -5,7 +5,7 @@ package main use package core main :: (args: [] cstr) { - imap : map.Map(i32, str); + imap : Map(i32, str); map.init(^imap, ""); defer { print("Freeing map\n"); -- 2.25.1