diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2024-08-10 17:36:54 +0200 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2024-08-10 17:36:54 +0200 |
| commit | fe8353ad6e852275570b6fb90e472f3f96d445f7 (patch) | |
| tree | f0046a2f50844cf0c508d1bf0cea51d2683f2372 /src/server | |
| parent | c3752b08f61832cf02ae0f751778c4adb5beca60 (diff) | |
local scope when_stmt
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/build.odin | 2 | ||||
| -rw-r--r-- | src/server/file_resolve.odin | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/server/build.odin b/src/server/build.odin index 312cb00..cc3a1ef 100644 --- a/src/server/build.odin +++ b/src/server/build.odin @@ -189,7 +189,7 @@ setup_index :: proc() { ) indexer.index = make_memory_index(symbol_collection) - dir_exe := common.get_executable_path() + dir_exe := common.get_executable_path(context.temp_allocator) try_build_package(path.join({dir_exe, "builtin"}, context.temp_allocator)) } diff --git a/src/server/file_resolve.odin b/src/server/file_resolve.odin index 588d7e3..a6b87e3 100644 --- a/src/server/file_resolve.odin +++ b/src/server/file_resolve.odin @@ -305,9 +305,13 @@ resolve_node :: proc(node: ^ast.Node, data: ^FileResolveData) { resolve_node(n.body, data) resolve_node(n.else_stmt, data) case ^When_Stmt: + local_scope(data, n) resolve_node(n.cond, data) resolve_node(n.body, data) resolve_node(n.else_stmt, data) + case ^Block_Stmt: + resolve_node(n.label, data) + resolve_nodes(n.stmts, data) case ^Implicit: if n.tok.text == "context" { data.position_context.implicit_context = n @@ -388,9 +392,6 @@ resolve_node :: proc(node: ^ast.Node, data: ^FileResolveData) { case ^Tag_Stmt: r := cast(^Tag_Stmt)node resolve_node(r.stmt, data) - case ^Block_Stmt: - resolve_node(n.label, data) - resolve_nodes(n.stmts, data) case ^Return_Stmt: data.position_context.returns = n resolve_nodes(n.results, data) |