aboutsummaryrefslogtreecommitdiff
path: root/src/server/analysis.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-07-12 20:07:53 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-07-13 06:50:19 -0400
commit3dbcf0183f6523d89c85bbf3324bc389ca7707a5 (patch)
tree555a2322de7fb017baf78d8c850fe568fdabaceb /src/server/analysis.odin
parentbbb3bc903e241e63e36552d6707b41eab926b419 (diff)
Fix issue resolving comparison binary expr
Diffstat (limited to 'src/server/analysis.odin')
-rw-r--r--src/server/analysis.odin10
1 files changed, 10 insertions, 0 deletions
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 {