aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2024-08-10 17:36:54 +0200
committerDanielGavin <danielgavin5@hotmail.com>2024-08-10 17:36:54 +0200
commitfe8353ad6e852275570b6fb90e472f3f96d445f7 (patch)
treef0046a2f50844cf0c508d1bf0cea51d2683f2372 /src/server
parentc3752b08f61832cf02ae0f751778c4adb5beca60 (diff)
local scope when_stmt
Diffstat (limited to 'src/server')
-rw-r--r--src/server/build.odin2
-rw-r--r--src/server/file_resolve.odin7
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)