aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBradley Lewis <22850972+BradLewis@users.noreply.github.com>2025-07-31 20:27:03 -0400
committerGitHub <noreply@github.com>2025-07-31 20:27:03 -0400
commit429b6946fffcef8f6d9d03ac98a438450cff5caa (patch)
tree54b795e5f26b2e09b13a7bca090234249670b463 /src
parent2d72faebe069f32f98c10382da8f09eb1d8d7445 (diff)
parentd6bfdd611ccf122117ef25e40b0f104b3f923de4 (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.odin2
-rw-r--r--src/server/documentation.odin2
-rw-r--r--src/server/symbol.odin2
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(