aboutsummaryrefslogtreecommitdiff
path: root/src/server/analysis.odin
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-07 15:30:22 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-07 15:34:51 -0400
commit59d3d9efc70ec5530c52ac6a657c8778defd1819 (patch)
treed1807e581e2b1bdfc1f798dc2c071c46169446be /src/server/analysis.odin
parent0673e745df404a5e526867c07a42ae049f43b816 (diff)
Improvement to resolving numeric binary expressions
Diffstat (limited to 'src/server/analysis.odin')
-rw-r--r--src/server/analysis.odin11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 92082b5..ac3680c 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -2872,8 +2872,15 @@ resolve_binary_expression :: proc(ast_context: ^AstContext, binary: ^ast.Binary_
return symbol_b, true
}
- if _, ok := symbol_a.value.(SymbolUntypedValue); ok {
- return symbol_b, ok_b
+ if value_a, ok := symbol_a.value.(SymbolUntypedValue); ok {
+ if value_b, ok := symbol_b.value.(SymbolUntypedValue); ok {
+ if value_a.type == .Float {
+ return symbol_a, true
+ }
+ return symbol_b, true
+ } else {
+ return symbol_b, ok_b
+ }
}
//Otherwise just choose the first type, we do not handle error cases - that is done with the checker
return symbol_a, ok_a