aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorBradley Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-17 08:35:49 -0400
committerGitHub <noreply@github.com>2025-09-17 08:35:49 -0400
commit447384838549d4f4e68db9cc229ae7f4eb232c4e (patch)
tree05f6a69736343d24288c7847361680dcc52b0011 /src/server
parent379c55200570277d68a78006844cd32b1802f328 (diff)
parent2d7c8bedac7d3e4780a8507a8b00b6dea254cd0d (diff)
Merge pull request #1023 from BradLewis/fix/ternary-if-call-expr
Correctly resolve local if and when ternary expressions
Diffstat (limited to 'src/server')
-rw-r--r--src/server/analysis.odin4
-rw-r--r--src/server/locals.odin4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 113f913..44063d6 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -1185,10 +1185,10 @@ internal_resolve_type_expression :: proc(ast_context: ^AstContext, node: ^ast.Ex
out^ = make_symbol_poly_type_from_ast(ast_context, v.type)
return true
case ^ast.Ternary_If_Expr:
- out^, ok = resolve_type_expression(ast_context, v.x)
+ ok = internal_resolve_type_expression(ast_context, v.x, out)
return ok
case ^ast.Ternary_When_Expr:
- out^, ok = resolve_type_expression(ast_context, v.x)
+ ok = internal_resolve_type_expression(ast_context, v.x, out)
return ok
case:
log.warnf("default node kind, internal_resolve_type_expression: %v", v)
diff --git a/src/server/locals.odin b/src/server/locals.odin
index 63a1452..3de2923 100644
--- a/src/server/locals.odin
+++ b/src/server/locals.odin
@@ -272,6 +272,10 @@ get_generic_assignment :: proc(
append(results, b)
}
+ case ^Ternary_If_Expr:
+ get_generic_assignment(file, v.x, ast_context, results, calls, flags, is_mutable)
+ case ^Ternary_When_Expr:
+ get_generic_assignment(file, v.x, ast_context, results, calls, flags, is_mutable)
case:
append(results, value)
}