From 5d3ee8c73ff2cf47b3a97b7a3dc2b3b4b8d2b511 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 13 Apr 2021 23:12:37 -0500 Subject: [PATCH] 'use package' and 'use' are unified; bugs will ensue --- bin/onyx | Bin 348824 -> 348824 bytes core/alloc/heap.onyx | 4 +- core/io/file.onyx | 2 +- include/bh.h | 2 +- include/onyxastnodes.h | 19 +++---- src/onyxastnodes.c | 1 - src/onyxclone.c | 2 - src/onyxentities.c | 16 +++--- src/onyxparser.c | 52 ++++++++---------- src/onyxsymres.c | 110 ++++++++++++++++++-------------------- src/onyxwasm.c | 1 - tests/aoc-2020/day10.onyx | 2 +- tests/aoc-2020/day11.onyx | 2 +- tests/aoc-2020/day12.onyx | 2 +- tests/aoc-2020/day13.onyx | 2 +- tests/aoc-2020/day14.onyx | 2 +- tests/aoc-2020/day15.onyx | 2 +- tests/aoc-2020/day16.onyx | 2 +- tests/aoc-2020/day17.onyx | 2 +- tests/aoc-2020/day18.onyx | 2 +- tests/aoc-2020/day19.onyx | 2 +- tests/aoc-2020/day20.onyx | 2 +- tests/aoc-2020/day21.onyx | 2 +- tests/aoc-2020/day22.onyx | 4 +- tests/aoc-2020/day25.onyx | 2 +- tests/aoc-2020/day7.onyx | 2 +- tests/aoc-2020/day8.onyx | 2 +- tests/aoc-2020/day9.onyx | 2 +- 28 files changed, 109 insertions(+), 136 deletions(-) diff --git a/bin/onyx b/bin/onyx index ca0e7fbf7d2e656e2319aba58b8a08701418f8ff..9d538e7114c141534849b16a50ec4b45c66c236f 100755 GIT binary patch delta 78912 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 delta 79306 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

2s~s1k>C@jHXWvsMa1k8>56+A^L=>VD;G7Nw85n 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 diff --git a/core/alloc/heap.onyx b/core/alloc/heap.onyx index 6c064370..52a43c5f 100644 --- a/core/alloc/heap.onyx +++ b/core/alloc/heap.onyx @@ -10,7 +10,7 @@ package core.alloc.heap #load "core/intrinsics/wasm" use package core.intrinsics.wasm { memory_size, memory_grow } -use package core.memory as memory +#private_file memory :: package core.memory // The global heap state #private_file @@ -142,4 +142,4 @@ init :: () { use package core.alloc { heap_allocator } heap_allocator.data = ^heap_state; heap_allocator.func = heap_alloc_proc; -} \ No newline at end of file +} diff --git a/core/io/file.onyx b/core/io/file.onyx index cee57a7d..640ea141 100644 --- a/core/io/file.onyx +++ b/core/io/file.onyx @@ -1,6 +1,6 @@ package core.io -use package runtime as runtime +#private_file runtime :: package runtime #if runtime.Runtime != runtime.Runtime_Wasi { #error "The file system library is currently only available on the WASI runtime, and should only be included if that is the chosen runtime." } diff --git a/include/bh.h b/include/bh.h index c3dcdb32..2afef54c 100644 --- a/include/bh.h +++ b/include/bh.h @@ -568,7 +568,7 @@ void bh__arr_deleten(void **arr, i32 elemsize, i32 index, i32 numelems); u64 bh__table_hash_function(const char* str, i32 len, i32 mod) { u64 hash = 5381; i32 c, l = 0; - if (len == 0) len = ((u32) 1 << 31) - 1; // TODO: Verify this is right + if (len == 0) len = ((u32) 1 << 31) - 1; while ((c = *str++) && l++ < len) { hash = (hash << 5) + hash + c; diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index cdd4047c..a3c147bb 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -98,7 +98,6 @@ typedef enum AstKind { Ast_Kind_Package, Ast_Kind_Load_File, Ast_Kind_Load_Path, - Ast_Kind_Use_Package, Ast_Kind_Alias, Ast_Kind_Memres, @@ -557,7 +556,12 @@ struct AstDirectiveSolidify { // Intruction Node struct AstReturn { AstNode_base; AstTyped* expr; }; struct AstJump { AstNode_base; JumpType jump; u32 count; }; -struct AstUse { AstNode_base; AstTyped* expr; }; +struct AstUse { + AstNode_base; + + AstTyped* expr; + bh_arr(AstAlias *) only; +}; // Structure Nodes struct AstBlock { @@ -709,16 +713,6 @@ struct AstCompoundType { struct AstBinding { AstTyped_base; AstNode* node; }; struct AstMemRes { AstTyped_base; u64 addr; AstTyped *initial_value; }; struct AstInclude { AstNode_base; char* name; }; -struct AstUsePackage { - AstNode_base; - - AstPackage *package; - - OnyxToken *alias; - AstPackage *alias_node; - - bh_arr(AstAlias *) only; -}; struct AstAlias { AstNode_base; OnyxToken *alias; @@ -965,7 +959,6 @@ typedef struct Entity { union { AstDirectiveError *error; AstInclude *include; - AstUsePackage *use_package; AstBinding *binding; AstStaticIf *static_if; AstFunction *function; diff --git a/src/onyxastnodes.c b/src/onyxastnodes.c index 6811e98c..c7a0354a 100644 --- a/src/onyxastnodes.c +++ b/src/onyxastnodes.c @@ -9,7 +9,6 @@ static const char* ast_node_names[] = { "PACKAGE", "INCLUDE FILE", "INCLUDE FOLDER", - "USE PACKAGE", "ALIAS", "MEMORY RESERVATION", diff --git a/src/onyxclone.c b/src/onyxclone.c index 60cae924..e4a76f6a 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -15,7 +15,6 @@ static inline b32 should_clone(AstNode* node) { case Ast_Kind_Enum_Value: case Ast_Kind_Overloaded_Function: case Ast_Kind_Polymorphic_Proc: - case Ast_Kind_Use_Package: return 0; default: return 1; @@ -28,7 +27,6 @@ static inline i32 ast_kind_to_size(AstNode* node) { case Ast_Kind_Package: return sizeof(AstPackage); case Ast_Kind_Load_File: return sizeof(AstInclude); case Ast_Kind_Load_Path: return sizeof(AstInclude); - case Ast_Kind_Use_Package: return sizeof(AstUsePackage); case Ast_Kind_Alias: return sizeof(AstAlias); case Ast_Kind_Memres: return sizeof(AstMemRes); case Ast_Kind_Binding: return sizeof(AstBinding); diff --git a/src/onyxentities.c b/src/onyxentities.c index ce4112c0..955e039b 100644 --- a/src/onyxentities.c +++ b/src/onyxentities.c @@ -256,16 +256,14 @@ void add_entities_for_node(bh_arr(Entity *) *target_arr, AstNode* node, Scope* s break; } - case Ast_Kind_Use_Package: { - ent.state = Entity_State_Comptime_Resolve_Symbols; - ent.type = Entity_Type_Use_Package; - ent.use_package = (AstUsePackage *) node; - ENTITY_INSERT(ent); - break; - } - case Ast_Kind_Use: { - ent.type = Entity_Type_Use; + if (((AstUse *) node)->expr->kind == Ast_Kind_Package) { + ent.state = Entity_State_Comptime_Resolve_Symbols; + ent.type = Entity_Type_Use_Package; + } else { + ent.type = Entity_Type_Use; + } + ent.use = (AstUse *) node; ENTITY_INSERT(ent); break; diff --git a/src/onyxparser.c b/src/onyxparser.c index f878f16a..34e6d782 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -80,7 +80,6 @@ static void consume_token(OnyxParser* parser) { static void unconsume_token(OnyxParser* parser) { if (parser->hit_unexpected_token) return; - // TODO: This is probably wrong while (parser->prev->type == Token_Type_Comment) parser->prev--; parser->curr = parser->prev; parser->prev--; @@ -1154,43 +1153,36 @@ static AstReturn* parse_return_stmt(OnyxParser* parser) { static AstNode* parse_use_stmt(OnyxParser* parser) { OnyxToken* use_token = expect_token(parser, Token_Type_Keyword_Use); + AstUse* use_node = make_node(AstUse, Ast_Kind_Use); + use_node->token = use_token; + use_node->expr = parse_expression(parser, 1); - if (parser->curr->type == Token_Type_Keyword_Package) { - AstUsePackage* upack = make_node(AstUsePackage, Ast_Kind_Use_Package); - upack->token = use_token; - upack->package = parse_package_expression(parser); - - if (consume_token_if_next(parser, Token_Type_Keyword_As)) - upack->alias = expect_token(parser, Token_Type_Symbol); - - if (consume_token_if_next(parser, '{')) { - bh_arr_new(global_heap_allocator, upack->only, 4); + if (consume_token_if_next(parser, '{')) { + bh_arr_new(global_heap_allocator, use_node->only, 4); - while (!consume_token_if_next(parser, '}')) { - if (parser->hit_unexpected_token) return NULL; + while (!consume_token_if_next(parser, '}')) { + if (parser->hit_unexpected_token) return NULL; - AstAlias* alias = make_node(AstAlias, Ast_Kind_Alias); - alias->token = expect_token(parser, Token_Type_Symbol); + AstAlias* alias = make_node(AstAlias, Ast_Kind_Alias); + alias->token = expect_token(parser, Token_Type_Symbol); - if (consume_token_if_next(parser, Token_Type_Keyword_As)) - alias->alias = expect_token(parser, Token_Type_Symbol); - else - alias->alias = alias->token; + if (consume_token_if_next(parser, Token_Type_Keyword_As)) + alias->alias = expect_token(parser, Token_Type_Symbol); + else + alias->alias = alias->token; - bh_arr_push(upack->only, alias); + bh_arr_push(use_node->only, alias); - if (parser->curr->type != '}') - expect_token(parser, ','); - } + if (parser->curr->type != '}') + expect_token(parser, ','); } - - ENTITY_SUBMIT(upack); + } + + if (use_node->expr->kind == Ast_Kind_Package) { + ENTITY_SUBMIT(use_node); return NULL; } else { - AstUse* use_node = make_node(AstUse, Ast_Kind_Use); - use_node->token = use_token; - use_node->expr = parse_expression(parser, 1); return (AstNode *) use_node; } } @@ -2456,10 +2448,10 @@ void onyx_parse(OnyxParser *parser) { parser->file_scope = scope_create(parser->allocator, parser->package->private_scope, parser->tokenizer->tokens[0].pos); bh_arr_push(parser->scope_stack, parser->file_scope); - AstUsePackage* implicit_use_builtin = make_node(AstUsePackage, Ast_Kind_Use_Package); + AstUse* implicit_use_builtin = make_node(AstUse, Ast_Kind_Use); AstPackage* implicit_builtin_package = make_node(AstPackage, Ast_Kind_Package); implicit_builtin_package->package_name = "builtin"; - implicit_use_builtin->package = implicit_builtin_package; + implicit_use_builtin->expr = (AstTyped *) implicit_builtin_package; ENTITY_SUBMIT(implicit_use_builtin); while (parser->curr->type != Token_Type_End_Stream) { diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 80bcb118..4a0282a8 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -52,7 +52,6 @@ static SymresStatus symres_function_header(AstFunction* func); static SymresStatus symres_function(AstFunction* func); static SymresStatus symres_global(AstGlobal* global); static SymresStatus symres_overloaded_function(AstOverloadedFunction* ofunc); -static SymresStatus symres_use_package(AstUsePackage* package); static SymresStatus symres_package(AstPackage* package); static SymresStatus symres_enum(AstEnumType* enum_node); static SymresStatus symres_memres_type(AstMemRes** memres); @@ -582,12 +581,44 @@ static SymresStatus symres_switch(AstSwitch* switchnode) { return Symres_Success; } +// CLEANUP: A lot of duplication going on in this function. A proper +// "namespace" concept would be useful to remove a lot of the fluff +// code here. There already is try_resolve_symbol_from_node which +// may be able to do what is needed here? static SymresStatus symres_use(AstUse* use) { SYMRES(expression, &use->expr); if (use->expr->kind == Ast_Kind_Package) { AstPackage* package = (AstPackage *) use->expr; - scope_include(curr_scope, package->package->scope, use->token->pos); + SYMRES(package, package); + + if (package->package->scope == curr_scope) return Symres_Success; + + if (use->only == NULL) { + OnyxFilePos pos = { 0 }; + if (use->token != NULL) + pos = use->token->pos; + + scope_include(curr_scope, package->package->scope, pos); + + } else { + bh_arr_each(AstAlias *, alias, use->only) { + AstNode* thing = symbol_resolve(package->package->scope, (*alias)->token); + if (thing == NULL) { // :SymresStall + if (report_unresolved_symbols) { + onyx_report_error((*alias)->token->pos, + "The symbol '%b' was not found in this package.", + (*alias)->token->text, (*alias)->token->length); + return Symres_Error; + } else { + return Symres_Yield_Macro; + } + } + + symbol_introduce(curr_scope, (*alias)->alias, thing); + } + } + return Symres_Success; } @@ -602,10 +633,25 @@ static SymresStatus symres_use(AstUse* use) { if (use->expr->kind == Ast_Kind_Struct_Type) { AstStructType* st = (AstStructType *) use->expr; + if (!st->scope) return Symres_Success; - if (st->scope) + if (use->only == NULL) { scope_include(curr_scope, st->scope, use->token->pos); + } else { + bh_arr_each(AstAlias *, alias, use->only) { + AstNode* thing = symbol_resolve(st->scope, (*alias)->token); + if (thing == NULL) { + onyx_report_error((*alias)->token->pos, + "The symbol '%b' was not found in this scope.", + (*alias)->token->text, (*alias)->token->length); + return Symres_Error; + } + + symbol_introduce(curr_scope, (*alias)->alias, thing); + } + } + return Symres_Success; } @@ -706,12 +752,6 @@ static SymresStatus symres_statement(AstNode** stmt, b32 *remove) { SYMRES(use, (AstUse *) *stmt); break; - case Ast_Kind_Use_Package: - if (remove) *remove = 1; - // This is handled by an entity now. - // SYMRES(use_package, (AstUsePackage *) *stmt); - break; - default: SYMRES(expression, (AstTyped **) stmt); break; } @@ -886,52 +926,6 @@ static SymresStatus symres_overloaded_function(AstOverloadedFunction* ofunc) { return Symres_Success; } -static SymresStatus symres_use_package(AstUsePackage* package) { - SYMRES(package, package->package); - - // CLEANUP: Oofta that name - Package* p = package->package->package; - - if (p->scope == curr_scope) return Symres_Success; - - if (package->alias != NULL) { - if (!package->alias_node) { - package->alias_node = onyx_ast_node_new(context.ast_alloc, sizeof(AstPackage), Ast_Kind_Package); - package->alias_node->package = p; - package->alias_node->token = package->alias; - } - - symbol_introduce(curr_scope, package->alias, (AstNode *) package->alias_node); - } - - if (package->only != NULL) { - bh_arr_each(AstAlias *, alias, package->only) { - - AstNode* thing = symbol_resolve(p->scope, (*alias)->token); - if (thing == NULL) { // :SymresStall - if (report_unresolved_symbols) { - onyx_report_error((*alias)->token->pos, "This symbol was not found in this package."); - return Symres_Error; - } else { - return Symres_Yield_Macro; - } - } - - symbol_introduce(curr_scope, (*alias)->alias, thing); - } - } - - if (package->alias == NULL && package->only == NULL) { - OnyxFilePos pos = { 0 }; - if (package->token != NULL) - pos = package->token->pos; - - scope_include(curr_scope, p->scope, pos); - } - - return Symres_Success; -} - static SymresStatus symres_package(AstPackage* package) { if (package->package == NULL) { if (!package->package_name) return Symres_Error; @@ -1100,9 +1094,9 @@ void symres_entity(Entity* ent) { case Entity_Type_Foreign_Global_Header: case Entity_Type_Global_Header: ss = symres_global(ent->global); break; - case Entity_Type_Use_Package: ss = symres_use_package(ent->use_package); - if (ent->use_package->package && ent->use_package->package->package) - package_track_use_package(ent->use_package->package->package, ent); + case Entity_Type_Use_Package: ss = symres_use(ent->use); + if (ent->use->expr && ((AstPackage *) ent->use->expr)->package) + package_track_use_package(((AstPackage *) ent->use->expr)->package, ent); next_state = Entity_State_Finalized; break; diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 147685cc..f4ae1fc3 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -2495,7 +2495,6 @@ static i32 generate_type_idx(OnyxWasmModule* mod, Type* ft) { type_idx = bh_table_get(i32, mod->type_map, type_repr_buf); } else { // NOTE: Make a new type - // TODO: Ensure that this isn't going to break things because of alignment WasmFuncType* type = (WasmFuncType*) bh_alloc(mod->allocator, sizeof(WasmFuncType) + sizeof(WasmType) * param_count); type->return_type = return_type; type->param_count = param_count; diff --git a/tests/aoc-2020/day10.onyx b/tests/aoc-2020/day10.onyx index 2eb0cca0..61f942b6 100644 --- a/tests/aoc-2020/day10.onyx +++ b/tests/aoc-2020/day10.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader count_ending_paths :: (nums: [..] u32) -> u64 { tally := array.make(u64, nums.count); diff --git a/tests/aoc-2020/day11.onyx b/tests/aoc-2020/day11.onyx index dccf8765..af756dc5 100644 --- a/tests/aoc-2020/day11.onyx +++ b/tests/aoc-2020/day11.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader GameOfSeats :: struct { width : u32; diff --git a/tests/aoc-2020/day12.onyx b/tests/aoc-2020/day12.onyx index 63e42642..0dd6ff55 100644 --- a/tests/aoc-2020/day12.onyx +++ b/tests/aoc-2020/day12.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader Ship :: struct { x : i32 = 0; diff --git a/tests/aoc-2020/day13.onyx b/tests/aoc-2020/day13.onyx index c6154bb0..1cfd7f59 100644 --- a/tests/aoc-2020/day13.onyx +++ b/tests/aoc-2020/day13.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader inv_mod :: (a_: i64, m_: i64) -> i64 { if m_ <= 1 do return 0; diff --git a/tests/aoc-2020/day14.onyx b/tests/aoc-2020/day14.onyx index 3903638f..a0bb53c7 100644 --- a/tests/aoc-2020/day14.onyx +++ b/tests/aoc-2020/day14.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader MASK_SIZE :: 36 Bitmask :: #type [MASK_SIZE] u8; diff --git a/tests/aoc-2020/day15.onyx b/tests/aoc-2020/day15.onyx index 379be8ac..168ced9c 100644 --- a/tests/aoc-2020/day15.onyx +++ b/tests/aoc-2020/day15.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader initial_numbers := u32.[ 1, 20, 8, 12, 0, 14 ]; diff --git a/tests/aoc-2020/day16.onyx b/tests/aoc-2020/day16.onyx index 3ce7c0f2..f15c9db1 100644 --- a/tests/aoc-2020/day16.onyx +++ b/tests/aoc-2020/day16.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader Field :: struct { name : str = ""; diff --git a/tests/aoc-2020/day17.onyx b/tests/aoc-2020/day17.onyx index ea22356b..8aff1ac7 100644 --- a/tests/aoc-2020/day17.onyx +++ b/tests/aoc-2020/day17.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader CubePos :: struct { x, y, z, w : i32; diff --git a/tests/aoc-2020/day18.onyx b/tests/aoc-2020/day18.onyx index 0b38252f..294fe09a 100644 --- a/tests/aoc-2020/day18.onyx +++ b/tests/aoc-2020/day18.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader parse_factor :: (file: ^reader.StringReader) -> u64 { reader.skip_whitespace(file); diff --git a/tests/aoc-2020/day19.onyx b/tests/aoc-2020/day19.onyx index 4e105e9a..5b0ded1d 100644 --- a/tests/aoc-2020/day19.onyx +++ b/tests/aoc-2020/day19.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader // nt -> t Term :: struct { diff --git a/tests/aoc-2020/day20.onyx b/tests/aoc-2020/day20.onyx index 806e44a0..dafa71cc 100644 --- a/tests/aoc-2020/day20.onyx +++ b/tests/aoc-2020/day20.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader TILE_DATA_WIDTH :: 10 TILE_DATA_HEIGHT :: 10 diff --git a/tests/aoc-2020/day21.onyx b/tests/aoc-2020/day21.onyx index 8c6ad0cc..12fb70d1 100644 --- a/tests/aoc-2020/day21.onyx +++ b/tests/aoc-2020/day21.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader /* What questions the data layout needs to answer easily: diff --git a/tests/aoc-2020/day22.onyx b/tests/aoc-2020/day22.onyx index ca2038ef..29cab03d 100644 --- a/tests/aoc-2020/day22.onyx +++ b/tests/aoc-2020/day22.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader key_arena : alloc.arena.ArenaState; key_alloc : Allocator; @@ -43,7 +43,7 @@ combat :: (player1: ^[..] u32, player2: ^[..] u32) -> u32 { // 4,5,2,8,|1,3,9,7, // Larger numbers are encoded in base 64. encode_hands :: (alloc: Allocator, p1: ^[..] u32, p2: ^[..] u32) -> str { - use package core.string.builder as b + b :: package core.string.builder builder := b.make(256, alloc); for n: *p1 { diff --git a/tests/aoc-2020/day25.onyx b/tests/aoc-2020/day25.onyx index 0ca1507b..db11f1ec 100644 --- a/tests/aoc-2020/day25.onyx +++ b/tests/aoc-2020/day25.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader power_mod :: (base: u32, exp: u32, mod: u32) -> u32 { t: u64 = 1; diff --git a/tests/aoc-2020/day7.onyx b/tests/aoc-2020/day7.onyx index 2fe27d12..8c06460b 100644 --- a/tests/aoc-2020/day7.onyx +++ b/tests/aoc-2020/day7.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader BagGraph :: struct { nodes : [..] ^BagNode; diff --git a/tests/aoc-2020/day8.onyx b/tests/aoc-2020/day8.onyx index 49d18718..61728050 100644 --- a/tests/aoc-2020/day8.onyx +++ b/tests/aoc-2020/day8.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader OpCode :: enum (u16) { Nop; Acc; Jmp; diff --git a/tests/aoc-2020/day9.onyx b/tests/aoc-2020/day9.onyx index 10d5e1da..8df60e34 100644 --- a/tests/aoc-2020/day9.onyx +++ b/tests/aoc-2020/day9.onyx @@ -1,7 +1,7 @@ #load "core/std" use package core -use package core.string.reader as reader +reader :: package core.string.reader find_contiguous_subarray_with_sum :: (nums: [..] u64, sum: u64) -> (i32, i32) { start := 0; -- 2.25.1