From 3dbcf0183f6523d89c85bbf3324bc389ca7707a5 Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Sat, 12 Jul 2025 20:07:53 -0400 Subject: Fix issue resolving comparison binary expr --- src/server/analysis.odin | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/server/analysis.odin b/src/server/analysis.odin index e1ebfd6..c4de6dd 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -1467,6 +1467,8 @@ internal_resolve_type_identifier :: proc(ast_context: ^AstContext, node: ast.Ide return_symbol, ok = resolve_basic_lit(ast_context, v^) return_symbol.name = node.name return_symbol.type = local.variable ? .Variable : .Constant + case ^ast.Binary_Expr: + return_symbol, ok = resolve_binary_expression(ast_context, v) case: return_symbol, ok = internal_resolve_type_expression(ast_context, local.rhs) } @@ -2415,6 +2417,14 @@ resolve_binary_expression :: proc(ast_context: ^AstContext, binary: ^ast.Binary_ symbol_a, symbol_b: Symbol ok_a, ok_b: bool + #partial switch binary.op.kind { + case .Cmp_Eq, .Gt, .Gt_Eq, .Lt, .Lt_Eq: + symbol_a.value = SymbolUntypedValue { + type = .Bool, + } + return symbol_a, true + } + if expr, ok := binary.left.derived.(^ast.Binary_Expr); ok { symbol_a, ok_a = resolve_binary_expression(ast_context, expr) } else { -- cgit v1.2.3