diff options
| author | Bradley Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-07-31 20:27:03 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-31 20:27:03 -0400 |
| commit | 429b6946fffcef8f6d9d03ac98a438450cff5caa (patch) | |
| tree | 54b795e5f26b2e09b13a7bca090234249670b463 /src | |
| parent | 2d72faebe069f32f98c10382da8f09eb1d8d7445 (diff) | |
| parent | d6bfdd611ccf122117ef25e40b0f104b3f923de4 (diff) | |
Merge pull request #815 from BradLewis/fix/crashing-objc-hover
Resolve objc methods before expanding usings to fix issues with hover documentation
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/analysis.odin | 2 | ||||
| -rw-r--r-- | src/server/documentation.odin | 2 | ||||
| -rw-r--r-- | src/server/symbol.odin | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 250e118..6464d2b 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -2220,8 +2220,8 @@ resolve_symbol_return :: proc(ast_context: ^AstContext, symbol: Symbol, ok := tr } //expand the types and names from the using - can't be done while indexing without complicating everything(this also saves memory) - expand_usings(ast_context, &b) expand_objc(ast_context, &b) + expand_usings(ast_context, &b) return to_symbol(b), ok case SymbolGenericValue: ret, ok := resolve_type_expression(ast_context, v.expr) diff --git a/src/server/documentation.odin b/src/server/documentation.odin index 7dbf5d9..aab3cff 100644 --- a/src/server/documentation.odin +++ b/src/server/documentation.odin @@ -551,7 +551,7 @@ write_struct_hover :: proc(ast_context: ^AstContext, sb: ^strings.Builder, v: Sy for i in 0 ..< len(v.names) { if i < len(v.from_usings) { - if index := v.from_usings[i]; index != using_index { + if index := v.from_usings[i]; index != using_index && index != -1 { fmt.sbprintf(sb, "\n\t// from `using %s: ", v.names[index]) build_string_node(v.types[index], sb, false) if backing_type, ok := v.backing_types[index]; ok { diff --git a/src/server/symbol.odin b/src/server/symbol.odin index d933819..ad16339 100644 --- a/src/server/symbol.odin +++ b/src/server/symbol.odin @@ -361,8 +361,8 @@ write_struct_type :: proc( resolve_poly_struct(ast_context, b, v.poly_params) } - expand_usings(ast_context, b) expand_objc(ast_context, b) + expand_usings(ast_context, b) } write_symbol_struct_value :: proc( |