aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/analysis.odin2
-rw-r--r--src/server/file_resolve.odin1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index f02448a..86289f5 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -4080,6 +4080,8 @@ get_locals_type_switch_stmt :: proc(
return
}
+ get_locals_stmt(file, stmt.tag, ast_context, document_position, true)
+
if block, ok := stmt.body.derived.(^Block_Stmt); ok {
for block_stmt in block.stmts {
if cause, ok := block_stmt.derived.(^Case_Clause);
diff --git a/src/server/file_resolve.odin b/src/server/file_resolve.odin
index 27ad013..cb77753 100644
--- a/src/server/file_resolve.odin
+++ b/src/server/file_resolve.odin
@@ -409,6 +409,7 @@ resolve_node :: proc(node: ^ast.Node, data: ^FileResolveData) {
case ^Type_Switch_Stmt:
data.position_context.switch_type_stmt = n
resolve_node(n.label, data)
+ local_scope(data, n)
resolve_node(n.tag, data)
resolve_node(n.expr, data)
resolve_node(n.body, data)