From 25918f2c36958a1220be5cfafd740c57de067606 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 14 Sep 2020 17:44:19 -0500 Subject: [PATCH] bugfixes for polymorphic structs --- core/i32map.onyx | 4 ++-- onyx | Bin 703696 -> 704040 bytes progs/poly_struct.onyx | 7 +++---- src/onyxclone.c | 16 ++++++++++++++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/core/i32map.onyx b/core/i32map.onyx index e0932fac..967b0d52 100644 --- a/core/i32map.onyx +++ b/core/i32map.onyx @@ -46,11 +46,11 @@ i32map_has :: proc (imap: ^I32Map($T), key: i32) -> bool { return lr.entry_index >= 0; } -i32map_get :: proc (imap: ^I32Map($T), key: i32) -> i32 { +i32map_get :: proc (imap: ^I32Map($T), key: i32, default := cast(T) 0) -> T { lr := i32map_lookup(imap, key); if lr.entry_index >= 0 do return imap.entries[lr.entry_index].value; - return null; + return default; } i32map_delete :: proc (imap: ^I32Map($T), key: i32) { diff --git a/onyx b/onyx index c0f66a7c0b4feffa46812bda08fafa01c1626186..600acc296ddaf8c80a1097d4c4d8a6cb62e7f394 100755 GIT binary patch delta 47881 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 Po!Fm38bI;89U=b*j!Z+$ delta 47883 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 VIDxsTei<%mVahN-Lb=K7{{Y9p|E>T4 diff --git a/progs/poly_struct.onyx b/progs/poly_struct.onyx index 9e32c695..68c968d0 100644 --- a/progs/poly_struct.onyx +++ b/progs/poly_struct.onyx @@ -6,12 +6,11 @@ use package core main :: proc (args: [] cstring) { - - imap : I32Map(string); + imap : I32Map(i32); i32map_init(^imap); - i32map_put(^imap, 50, "Hello "); - i32map_put(^imap, 1234, "World!"); + i32map_put(^imap, 50, 1234); + i32map_put(^imap, 1234, 5678); print(i32map_get(^imap, 50)); print(i32map_get(^imap, 1234)); diff --git a/src/onyxclone.c b/src/onyxclone.c index ab4068bc..a4e95d97 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -290,9 +290,25 @@ AstNode* ast_clone(bh_allocator a, void* n) { } case Ast_Kind_Struct_Member: + ((AstStructMember *) nn)->type_node = (AstType *) ast_clone(a, ((AstStructMember *) node)->type_node); ((AstStructMember *) nn)->initial_value = (AstTyped *) ast_clone(a, ((AstStructMember *) node)->initial_value); break; + case Ast_Kind_Poly_Call_Type: { + AstPolyCallType* pcd = (AstPolyCallType *) nn; + AstPolyCallType* pcs = (AstPolyCallType *) node; + + pcd->callee = (AstType *) ast_clone(a, pcs->callee); + pcd->params = NULL; + bh_arr_new(global_heap_allocator, pcd->params, bh_arr_length(pcs->params)); + + bh_arr_each(AstType *, param, pcs->params) { + bh_arr_push(pcd->params, (AstType *) ast_clone(a, *param)); + } + + break; + } + case Ast_Kind_Function_Type: ((AstFunctionType *) nn)->return_type = (AstType *) ast_clone(a, ((AstFunctionType *) node)->return_type); ((AstFunctionType *) nn)->param_count = ((AstFunctionType *) node)->param_count; -- 2.25.1