diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2025-07-31 21:57:53 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-31 21:57:53 +0200 |
| commit | 9cfe56a78b45546dd569f3604d41ff9db60a3fa0 (patch) | |
| tree | 595893dcfc947c5f2929b574cd78b95aea401771 /src/server | |
| parent | 56447447ddb370ea74d66cf27ea5395b432a7700 (diff) | |
| parent | 6cf13706c9c8be50915c76f1c93b15ae8d120a9e (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.odin | 2 | ||||
| -rw-r--r-- | src/server/file_resolve.odin | 1 |
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) |