From 382bd264b3201d4913f67b23b70bc735b2d201e7 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 19 Aug 2020 13:49:30 -0500 Subject: [PATCH] small bugfix with struct literal named values --- include/bh.h | 2 ++ onyx | Bin 153416 -> 153416 bytes progs/stack_based.onyx | 15 +++++++++++++++ src/onyxchecker.c | 4 ++-- src/onyxparser.c | 4 ++-- src/onyxsymres.c | 1 + 6 files changed, 22 insertions(+), 4 deletions(-) diff --git a/include/bh.h b/include/bh.h index 6ae5e58b..4a57248a 100644 --- a/include/bh.h +++ b/include/bh.h @@ -576,6 +576,8 @@ typedef struct bh__arr { #define bh_arr_each(T, var, arr) for (T* var = (arr); !bh_arr_end((arr), var); var++) #define bh_arr_rev_each(T, var, arr) for (T* var = &bh_arr_last((arr)); !bh_arr_start((arr), var); var--) +#define bh_arr_zero(arr) memset(arr, 0, bh_arr_length(arr) * sizeof(*(arr))); + b32 bh__arr_grow(bh_allocator alloc, void** arr, i32 elemsize, i32 cap); b32 bh__arr_shrink(void** arr, i32 elemsize, i32 cap); b32 bh__arr_free(void **arr); diff --git a/onyx b/onyx index 9af74f0d190be2d06bf4524e5cb926acb4f9f9dc..ba5c54d50cb564f7322979da83fa5f7d5d6fa0c1 100755 GIT binary patch delta 18295 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 delta 18273 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

y8K1h9yvA7Yg->~o%s`Rca9{eY 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 diff --git a/progs/stack_based.onyx b/progs/stack_based.onyx index 809e0af5..865e583e 100644 --- a/progs/stack_based.onyx +++ b/progs/stack_based.onyx @@ -56,6 +56,11 @@ Vec3 :: struct { z: i32 = 0; } +SomeBigThing :: struct { + name: string; + pos: Vec3; +} + mag_squared :: proc (use v: Vec3) -> i32 { return x * x + y * y + z * z; } @@ -163,6 +168,16 @@ start :: proc #export { s3 :: string_concat(heap_allocator, s1, s2); defer string_free(heap_allocator, s3); string_print(s3); + + sbt : SomeBigThing; + sbt.name = s3; + sbt.pos = Vec3.{ 2, 3, 4 }; + string_print(sbt.name); + + v := vmul(vadd(sbt.pos, Vec3.{ 1, 2, 3 }), 3); + print(v.x); + print(v.y); + print(v.z); } vadd :: proc (v1: Vec3, v2: Vec3) -> Vec3 { diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 5f51a243..a2ca405f 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -401,7 +401,7 @@ CHECK(binop_assignment, AstBinaryOp* binop, b32 assignment_is_ok) { } if (!types_are_compatible(binop->left->type, binop->right->type)) { - onyx_message_add(Msg_Type_Binop_Mismatch, + onyx_message_add(Msg_Type_Assignment_Mismatch, binop->token->pos, type_get_name(binop->left->type), type_get_name(binop->right->type)); @@ -651,7 +651,7 @@ CHECK(struct_literal, AstStructLiteral* sl) { if (!types_are_compatible((*formal)->type, (*actual)->type)) { onyx_message_add(Msg_Type_Assignment_Mismatch, - (*actual)->token->pos, + sl->token->pos, type_get_name((*formal)->type), type_get_name((*actual)->type)); return 1; diff --git a/src/onyxparser.c b/src/onyxparser.c index c5da87a2..e61e4b52 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -237,7 +237,7 @@ static b32 parse_possible_struct_literal(OnyxParser* parser, AstTyped** ret) { sm->initial_value = expr; bh_arr_push(sl->named_values, sm); - + } else { bh_arr_push(sl->values, expr); } @@ -522,7 +522,7 @@ static AstTyped* parse_factor(OnyxParser* parser) { if (parser->curr->type != ')') expect_token(parser, ','); } - + consume_token(parser); retval = (AstTyped *) call_node; diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 573f89c2..d0de2ea8 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -224,6 +224,7 @@ static void symres_struct_literal(AstStructLiteral* sl) { if (bh_arr_length(sl->values) == 0) { bh_arr_set_length(sl->values, sl->type->Struct.mem_count); + bh_arr_zero(sl->values); StructMember s; bh_arr_each(AstStructMember *, smem, sl->named_values) { -- 2.25.1