diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-17 08:26:07 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-17 08:26:07 -0400 |
| commit | 2d7c8bedac7d3e4780a8507a8b00b6dea254cd0d (patch) | |
| tree | 05f6a69736343d24288c7847361680dcc52b0011 /src | |
| parent | 379c55200570277d68a78006844cd32b1802f328 (diff) | |
Correctly resolve local if and when ternary expressions
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/analysis.odin | 4 | ||||
| -rw-r--r-- | src/server/locals.odin | 4 |
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) } |