diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-22 21:09:41 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-22 21:09:41 -0400 |
| commit | cceb115d109c6fc86d8f6aa9cbe19517437e1519 (patch) | |
| tree | 8e0323408760a9896f2697ec44468eb4e724b625 /src/server/analysis.odin | |
| parent | d4e3c3a58d3ae0c5d42ef76b3de037fc5b720f77 (diff) | |
Correct resolving basic type aliases of keywords by using the underlying ident name rather than the symbol name
Diffstat (limited to 'src/server/analysis.odin')
| -rw-r--r-- | src/server/analysis.odin | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 1e570b4..25f85c5 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -340,19 +340,22 @@ are_symbol_basic_same_keywords :: proc(a, b: Symbol) -> bool { if are_keyword_aliases(a.name, b.name) { return true } - if a.name != b.name { + a_value, a_ok := a.value.(SymbolBasicValue) + if !a_ok { return false } - if _, ok := a.value.(SymbolBasicValue); !ok { + + b_value, b_ok := b.value.(SymbolBasicValue) + if !b_ok { return false } - if _, ok := b.value.(SymbolBasicValue); !ok { + if a_value.ident.name != b_value.ident.name { return false } - if _, ok := keyword_map[a.name]; !ok { + if _, ok := keyword_map[a_value.ident.name]; !ok { return false } - if _, ok := keyword_map[b.name]; !ok { + if _, ok := keyword_map[b_value.ident.name]; !ok { return false } |