aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-17 20:38:26 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-08-17 20:41:54 -0400
commitc96f264f8df3e83d82471f54b63e872ce5116f01 (patch)
treec6f7ac32408a633182488e828d9cb0274209c591 /src/server
parent09f6cfa658b77504f1fd1f7c20eb3e15ef473030 (diff)
Handle references and go to definition for soa fields
Diffstat (limited to 'src/server')
-rw-r--r--src/server/analysis.odin12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 57ad029..19c4e0a 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -2630,6 +2630,18 @@ resolve_symbol_selector :: proc(
if s, ok := resolve_type_expression(ast_context, v.return_types[0].type); ok {
return resolve_symbol_selector(ast_context, selector, s)
}
+ case SymbolSliceValue:
+ if .Soa in symbol.flags {
+ return resolve_soa_selector_field(ast_context, v.expr, field)
+ }
+ case SymbolDynamicArrayValue:
+ if .Soa in symbol.flags {
+ return resolve_soa_selector_field(ast_context, v.expr, field)
+ }
+ case SymbolFixedArrayValue:
+ if .Soa in symbol.flags {
+ return resolve_soa_selector_field(ast_context, v.expr, field)
+ }
}
return symbol, true