aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2025-07-31 21:57:53 +0200
committerGitHub <noreply@github.com>2025-07-31 21:57:53 +0200
commit9cfe56a78b45546dd569f3604d41ff9db60a3fa0 (patch)
tree595893dcfc947c5f2929b574cd78b95aea401771 /src/server
parent56447447ddb370ea74d66cf27ea5395b432a7700 (diff)
parent6cf13706c9c8be50915c76f1c93b15ae8d120a9e (diff)
Merge pull request #811 from BradLewis/fix/reference-type-switch-tag
Correctly find references for type switch tags
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)