aboutsummaryrefslogtreecommitdiff
path: root/src/server/analysis.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-20 15:25:54 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-20 15:29:52 -0400
commitaec4e645f21271ecc4c90a65b56ea702fa88aba8 (patch)
tree137baabe28d900e5f85a4c9e5e08ff1bfbd398ed /src/server/analysis.odin
parent2aa0e380f2fc28a464c1a62d7cdc742b12783125 (diff)
Correct hover info for soa pointers
Diffstat (limited to 'src/server/analysis.odin')
-rw-r--r--src/server/analysis.odin6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 3b7b87e..44245e1 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -1336,14 +1336,16 @@ resolve_soa_selector_field :: proc(
return {}, false
}
+ ast_context.use_locals = true
if symbol, ok := resolve_type_expression(ast_context, expr); ok {
if v, ok := symbol.value.(SymbolStructValue); ok {
for n, i in v.names {
if n == name {
if .SoaPointer in selector.flags {
if resolved, ok := resolve_type_expression(ast_context, v.types[i]); ok {
- symbol.value = resolved.value
- symbol.pkg = symbol.name
+ resolved.pkg = symbol.name
+ resolved.range = v.ranges[i]
+ return resolved, ok
} else {
return {}, false
}