diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2025-07-19 19:26:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-19 19:26:49 +0200 |
| commit | 18619caa29afb5435c6cfe1e63739db51299ff72 (patch) | |
| tree | 6b27eb8e3d59905c85d36032b30cab7c6afbc345 /src | |
| parent | 0ab1503c0460e41856b113ed641d1c843282cc83 (diff) | |
| parent | 898af0add1435f6481e3713462c21f395a4fd60e (diff) | |
Merge pull request #760 from BradLewis/feat/resolve-proc-where
Resolve where clauses in procs
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/analysis.odin | 7 | ||||
| -rw-r--r-- | src/server/file_resolve.odin | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 3583a64..27b8f5c 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -4779,6 +4779,13 @@ get_document_position_node :: proc(node: ^ast.Node, position_context: ^DocumentP } else if position_in_node(n.type, position_context.position) { position_context.function = cast(^Proc_Lit)node get_document_position(n.type, position_context) + } else { + for clause in n.where_clauses { + if position_in_node(clause, position_context.position) { + position_context.function = cast(^Proc_Lit)node + get_document_position(clause, position_context) + } + } } case ^Comp_Lit: //only set this for the parent comp literal, since we will need to walk through it to infer types. diff --git a/src/server/file_resolve.odin b/src/server/file_resolve.odin index e930f9d..27ad013 100644 --- a/src/server/file_resolve.odin +++ b/src/server/file_resolve.odin @@ -248,6 +248,10 @@ resolve_node :: proc(node: ^ast.Node, data: ^FileResolveData) { resolve_node(n.type, data) + for clause in n.where_clauses { + resolve_node(clause, data) + } + data.position_context.function = cast(^Proc_Lit)node append(&data.position_context.functions, data.position_context.function) |