From 6d05211bfb8362ed78d26e40275b8977f9b48615 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 31 Aug 2023 08:34:24 -0500 Subject: [PATCH] fixed: miscellaneous bugfixes --- compiler/src/checker.c | 1 + compiler/src/parser.c | 4 ++-- compiler/src/wasm_emit.c | 4 ++-- compiler/src/wasm_type_table.h | 2 +- core/container/array.onyx | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/compiler/src/checker.c b/compiler/src/checker.c index bb4450c7..61d6e24c 100644 --- a/compiler/src/checker.c +++ b/compiler/src/checker.c @@ -2421,6 +2421,7 @@ CheckStatus check_expression(AstTyped** pexpr) { case Ast_Kind_Switch_Case: break; case Ast_Kind_Foreign_Block: break; case Ast_Kind_Zero_Value: break; + case Ast_Kind_Interface: break; default: retval = Check_Error; diff --git a/compiler/src/parser.c b/compiler/src/parser.c index 8ec4eb56..6b39d538 100644 --- a/compiler/src/parser.c +++ b/compiler/src/parser.c @@ -1492,7 +1492,7 @@ static i32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) bh_arr_push(parser->current_symbol_stack, symbol); AstBinding* binding = parse_top_level_binding(parser, symbol); bh_arr_pop(parser->current_symbol_stack); - if (parser->hit_unexpected_token) return 2; + if (parser->hit_unexpected_token || !binding) return 2; ENTITY_SUBMIT(binding); return 2; @@ -2362,7 +2362,7 @@ static AstUnionType* parse_union(OnyxParser* parser) { AstType *backing_type = parse_type(parser); u_node->tag_backing_type = backing_type; } else { - u_node->tag_backing_type = &basic_type_u32; + u_node->tag_backing_type = (AstType *) &basic_type_u32; } if (consume_token_if_next(parser, '(')) { diff --git a/compiler/src/wasm_emit.c b/compiler/src/wasm_emit.c index 35b3ef24..a361da0a 100644 --- a/compiler/src/wasm_emit.c +++ b/compiler/src/wasm_emit.c @@ -4232,8 +4232,8 @@ EMIT_FUNC(stack_trace_blob, AstFunction *fd) { u8* node_data = bh_alloc_array(context.ast_alloc, u8, 6 * POINTER_SIZE); char *name = get_function_name(fd); - emit_raw_string(mod, (const char *) fd->token->pos.filename, strlen(fd->token->pos.filename), &file_name_id, &node_data[4]); - emit_raw_string(mod, name, strlen(name), &func_name_id, &node_data[16]); + emit_raw_string(mod, (char *) fd->token->pos.filename, strlen(fd->token->pos.filename), &file_name_id, (u64 *) &node_data[4]); + emit_raw_string(mod, name, strlen(name), &func_name_id, (u64 *) &node_data[16]); *((u32 *) &node_data[8]) = fd->token->pos.line; *((u32 *) &node_data[20]) = fd->type->id; diff --git a/compiler/src/wasm_type_table.h b/compiler/src/wasm_type_table.h index def9c665..9e2b46c5 100644 --- a/compiler/src/wasm_type_table.h +++ b/compiler/src/wasm_type_table.h @@ -1274,7 +1274,7 @@ static u64 build_tagged_globals(OnyxWasmModule *module) { patch.location = tag_global_buffer.length; patch.offset = 0; patch.data_id = 0; - patch.node_to_use_if_data_id_is_null = memres; + patch.node_to_use_if_data_id_is_null = (AstNode *) memres; bh_arr_push(module->data_patches, patch); bh_buffer_write_u32(&tag_global_buffer, 0); diff --git a/core/container/array.onyx b/core/container/array.onyx index 8d0bca8f..0282fba3 100644 --- a/core/container/array.onyx +++ b/core/container/array.onyx @@ -309,7 +309,7 @@ filter :: macro (arr: &[..] $T, body: Code) { while i := 0; i < arr.count - move { defer i += 1; - it := arr[i]; + it := arr.data[i]; if !(#unquote body(it)) do move += 1; if move != 0 do arr.data[i] = arr.data[i + move]; } -- 2.25.1