From 22435009bb4cda6711463c961f714be16e692593 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 29 Dec 2020 13:45:08 -0600 Subject: [PATCH] bugfixes with procedure level bindings --- include/onyxastnodes.h | 3 ++- onyx | Bin 287016 -> 287056 bytes progs/poly_solidify.onyx | 15 ++++++++++++++- src/onyxparser.c | 32 ++++++++++++++++++++++++++++---- src/onyxsymres.c | 4 ++-- 5 files changed, 46 insertions(+), 8 deletions(-) diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 5789ebbc..ea239113 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -533,7 +533,8 @@ struct AstBlock { Scope *scope; bh_arr(AstTyped *) allocate_exprs; - bh_arr(AstBinding *) bindings; + + Scope *binding_scope; }; struct AstDefer { AstNode_base; AstNode *stmt; }; struct AstFor { diff --git a/onyx b/onyx index 78d3f0e22c150f22b2f38a686a7ead60dceb8a1f..92f06c4eb145a60f8cf3576230be2ab7095bdc2e 100755 GIT binary patch delta 57031 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 Ub|cYvzthGE!t2TwO*Xdqf3bcC$N&HU diff --git a/progs/poly_solidify.onyx b/progs/poly_solidify.onyx index 4bf90352..24462e93 100644 --- a/progs/poly_solidify.onyx +++ b/progs/poly_solidify.onyx @@ -22,7 +22,7 @@ main :: proc (args: [] cstr) { proc (b: f32) -> f64 { return ~~(b + 6); })); - arr : [..] i32; + arr : [..] f32; array.init(^arr); defer array.free(^arr); @@ -35,7 +35,20 @@ main :: proc (args: [] cstr) { } array_map :: proc (arr: [..] $T, f: proc (T) -> T) { + test2(); + + foo := #solidify math.max { T = T }; + is := (#type InternalStruct(T)).{ foo = foo(6, 2) }; + printf("%i\n", is.foo); + for ^v: arr do *v = f(*v); + + test2 :: proc () { test(); println("WORLD!!!!"); }; + test :: proc () { println("HELLO!!!"); }; + + InternalStruct :: struct ($SOMETHING) { + foo : SOMETHING; + }; } double :: proc (v: $V) -> V do return v * 2; \ No newline at end of file diff --git a/src/onyxparser.c b/src/onyxparser.c index d6d64331..b1d1e736 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -112,9 +112,18 @@ static OnyxToken* soft_expect_token(OnyxParser* parser, TokenType token_type) { } static void add_node_to_process(OnyxParser* parser, AstNode* node) { + Scope* scope = parser->file_scope; + + if (!bh_arr_is_empty(parser->block_stack)) { + Scope* binding_scope = parser->block_stack[bh_arr_length(parser->block_stack) - 1]->binding_scope; + + if (binding_scope != NULL) + scope = binding_scope; + } + bh_arr_push(parser->results.nodes_to_process, ((NodeToProcess) { .package = parser->package, - .scope = parser->file_scope, + .scope = scope, .node = node, })); } @@ -1008,9 +1017,21 @@ static b32 parse_possible_symbol_declaration(OnyxParser* parser, AstNode** ret) expect_token(parser, ':'); if (parser->curr->type == ':') { - AstBinding* binding = parse_top_level_binding(parser, symbol); + AstBlock* current_block = parser->block_stack[bh_arr_length(parser->block_stack) - 1]; + if (current_block->binding_scope == NULL) { + // TODO: Check this is right. I suspect it may allow more things to be + // valid than I want it to. + + Scope* parent_scope = parser->file_scope; + if (bh_arr_length(parser->block_stack) > 1) { + parent_scope = parser->block_stack[bh_arr_length(parser->block_stack) - 2]->binding_scope; + } - bh_arr_push(parser->block_stack[0]->bindings, binding); + current_block->binding_scope = scope_create(parser->allocator, parent_scope, current_block->token->pos); + } + + AstBinding* binding = parse_top_level_binding(parser, symbol); + symbol_introduce(current_block->binding_scope, symbol, binding->node); return 1; } @@ -1340,7 +1361,10 @@ static AstBlock* parse_block(OnyxParser* parser) { AstNode** next = &block->body; AstNode* stmt = NULL; while (parser->curr->type != '}') { - if (parser->hit_unexpected_token) return block; + if (parser->hit_unexpected_token) { + bh_arr_pop(parser->block_stack); + return block; + } stmt = parse_statement(parser); diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 0b3a6584..5f7a668a 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -667,8 +667,8 @@ static void symres_block(AstBlock* block) { scope_enter(block->scope); bh_arr_push(semstate.block_stack, block); - bh_arr_each(AstBinding *, binding, block->bindings) - symbol_introduce(semstate.curr_scope, (*binding)->token, (*binding)->node); + if (block->binding_scope != NULL) + scope_include(block->scope, block->binding_scope, block->token->pos); if (block->body) symres_statement_chain(&block->body); -- 2.25.1