- 'core.array' contains a lot of functionality that would also apply to
slices. 'core.slice' should contain this functionality and 'core.array'
can provide wrappers that convert the array to a slice.
- - 'core.str' is a bad name, it should be 'core.string'. The issue is that
+ ✔ 'core.str' is a bad name, it should be 'core.string'. The issue is that
it conflicts with 'builtin.string'. These two should be switched. Type
name should be 'str' and package name should be 'string'
return (AstNode *) include;
}
else {
- onyx_report_error(dir_token->pos, "unknown directive '#%b'.", dir_token->text, dir_token->length);
+ OnyxToken* directive_token = expect_token(parser, '#');
+ OnyxToken* symbol_token = expect_token(parser, Token_Type_Symbol);
+
+ onyx_report_error(directive_token->pos, "unknown directive '#%b'.", symbol_token->text, symbol_token->length);
return NULL;
}
}
AstStructMember *member = s_node->members[i];
member->type_node = symres_type(member->type_node);
- if (!node_is_type(member->type_node)) {
+ if (!node_is_type((AstNode *) member->type_node)) {
onyx_report_error(member->token->pos, "Member type is not a type.");
return type;
}
case Entity_Type_Foreign_Function_Header:
case Entity_Type_Function: symres_function(ent->function); break;
+ case Entity_Type_Foreign_Global_Header:
+ case Entity_Type_Global_Header: symres_global(ent->global); break;
+
case Entity_Type_Use_Package: symres_use_package(ent->use_package); break;
case Entity_Type_Overloaded_Function: symres_overloaded_function(ent->overloaded_function); break;
- case Entity_Type_Global: symres_global(ent->global); break;
case Entity_Type_Expression: symres_expression(&ent->expr); break;
case Entity_Type_Type_Alias: ent->type_alias = symres_type(ent->type_alias); break;
case Entity_Type_Enum: symres_enum(ent->enum_type); break;
default: assert(("Invalid global type", 0)); break;
}
- bh_arr_grow(module->globals, global_idx + 1);
- module->globals[global_idx] = glob;
- bh_arr_set_length(module->globals, bh_max(bh_arr_length(module->globals), global_idx + 1));
-
bh_arr_grow(module->globals, global_idx - module->foreign_global_count + 1);
module->globals[global_idx - module->foreign_global_count] = glob;
bh_arr_set_length(module->globals, bh_max(bh_arr_length(module->globals), global_idx - module->foreign_global_count + 1));
if (global->flags & Ast_Flag_Global_Stack_Top)
- module->stack_top_ptr = &module->globals[global_idx].initial_value[0].data.i1;
+ module->stack_top_ptr = &module->globals[global_idx - module->foreign_global_count].initial_value[0].data.i1;
}
static void emit_foreign_global(OnyxWasmModule* module, AstGlobal* global) {