From ead366d624d3f073e6ab4ef70172eb55cf93a755 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 30 Dec 2020 13:40:56 -0600 Subject: [PATCH] code cleanup with `use` on struct variables --- onyx | Bin 287128 -> 287128 bytes src/onyxsymres.c | 22 ++++++++-------------- tests/struct_robustness.onyx | 5 +++-- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/onyx b/onyx index 0445ec27d27aa100c3fff70681c0ddc42216771a..b10a3c9594f4d3a79b18b0edf515f0eaffc87387 100755 GIT binary patch delta 39660 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 fs}%Z<*}expr->type_node == NULL) goto cannot_use; + if (use->expr->type_node == NULL && use->expr->type == NULL) goto cannot_use; AstType* effective_type = use->expr->type_node; if (effective_type->kind == Ast_Kind_Pointer_Type) @@ -584,16 +584,16 @@ static void symres_use(AstUse* use) { if (st->kind == Type_Kind_Pointer) st = st->Pointer.elem; - bh_arr_each(StructMember *, smem, st->Struct.memarr) { - AstFieldAccess* fa = make_field_access(use->expr, (*smem)->name); - symbol_raw_introduce(semstate.curr_scope, (*smem)->name, use->token->pos, (AstNode *) fa); - } + bh_table_each_start(StructMember, st->Struct.members); + AstFieldAccess* fa = make_field_access(use->expr, value.name); + symbol_raw_introduce(semstate.curr_scope, value.name, use->token->pos, (AstNode *) fa); + bh_table_each_end; return; } cannot_use: - onyx_report_error(use->token->pos, "Cannot use this."); + onyx_report_error(use->token->pos, "Cannot use this because its type is unknown."); } static void symres_directive_solidify(AstDirectiveSolidify** psolid) { @@ -762,14 +762,8 @@ void symres_function_header(AstFunction* func) { } bh_table_each_start(StructMember, st->Struct.members); - AstFieldAccess* fa = onyx_ast_node_new(semstate.node_allocator, sizeof(AstFieldAccess), Ast_Kind_Field_Access); - fa->expr = (AstTyped *) param->local; - fa->field = value.name; - - symbol_raw_introduce(semstate.curr_scope, - value.name, - param->local->token->pos, - (AstNode *) fa); + AstFieldAccess* fa = make_field_access((AstTyped *) param->local, value.name); + symbol_raw_introduce(semstate.curr_scope, value.name, param->local->token->pos, (AstNode *) fa); bh_table_each_end; } else { diff --git a/tests/struct_robustness.onyx b/tests/struct_robustness.onyx index 2ba09551..7e7586f7 100644 --- a/tests/struct_robustness.onyx +++ b/tests/struct_robustness.onyx @@ -22,12 +22,13 @@ main :: proc (args: [] cstr) { name : str; } - ss := SimpleStruct.{ 41, 67, "Steve" }; + ss: SimpleStruct = SimpleStruct.{ 41, 67, "Steve" }; + use ss; printf("SimpleStruct<%i, %i>(%i, %i, %s)\n", sizeof SimpleStruct, alignof SimpleStruct, - cast(u32) ss.age, ss.height, ss.name); + cast(u32) age, height, name); } test_simple_union :: proc () { -- 2.25.1