aboutsummaryrefslogtreecommitdiff
path: root/src/server/symbol.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-07-15 13:30:03 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-07-15 13:30:03 -0400
commit428b54c588ba00c84b60ed5d24cec1b264fa5589 (patch)
tree5c346c925af49394590f191f8b1c58a167971205 /src/server/symbol.odin
parent156d75278e86764f3754c68121f4ed347e167a8b (diff)
Correctly resolve references of proc parameter names
Diffstat (limited to 'src/server/symbol.odin')
-rw-r--r--src/server/symbol.odin13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server/symbol.odin b/src/server/symbol.odin
index 58b7e77..b65349c 100644
--- a/src/server/symbol.odin
+++ b/src/server/symbol.odin
@@ -562,6 +562,19 @@ get_proc_arg_type_from_name :: proc(v: SymbolProcedureValue, name: string) -> (^
return nil, false
}
+get_proc_arg_name_from_name :: proc(v: SymbolProcedureValue, name: string) -> (^ast.Ident, bool) {
+ for arg in v.arg_types {
+ for arg_name in arg.names {
+ if ident, ok := arg_name.derived.(^ast.Ident); ok {
+ if name == ident.name {
+ return ident, true
+ }
+ }
+ }
+ }
+ return nil, false
+}
+
new_clone_symbol :: proc(data: Symbol, allocator := context.allocator) -> ^Symbol {
new_symbol := new(Symbol, allocator)
new_symbol^ = data