diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-07-15 13:30:03 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-07-15 13:30:03 -0400 |
| commit | 428b54c588ba00c84b60ed5d24cec1b264fa5589 (patch) | |
| tree | 5c346c925af49394590f191f8b1c58a167971205 /src/server/symbol.odin | |
| parent | 156d75278e86764f3754c68121f4ed347e167a8b (diff) | |
Correctly resolve references of proc parameter names
Diffstat (limited to 'src/server/symbol.odin')
| -rw-r--r-- | src/server/symbol.odin | 13 |
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 |