From 6cf13706c9c8be50915c76f1c93b15ae8d120a9e Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Wed, 30 Jul 2025 22:15:14 -0400 Subject: Correctly find references for type switch tags --- src/server/analysis.odin | 2 ++ src/server/file_resolve.odin | 1 + 2 files changed, 3 insertions(+) (limited to 'src/server') 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) -- cgit v1.2.3