diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2025-09-21 17:44:08 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2025-09-21 17:44:08 -0400 |
| commit | c941b9a3325228eba404455afea7ccea0da45095 (patch) | |
| tree | d4ca88c6848ac2e6ceee635bb87add87ba6d2322 /src/compile/comparisons.c | |
| parent | 1cec086a6034ad546977cae7aeaf4bb876d21970 (diff) | |
Fix tests
Diffstat (limited to 'src/compile/comparisons.c')
| -rw-r--r-- | src/compile/comparisons.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/compile/comparisons.c b/src/compile/comparisons.c index 0f9a7ddd..ffa04b9d 100644 --- a/src/compile/comparisons.c +++ b/src/compile/comparisons.c @@ -20,20 +20,19 @@ static CONSTFUNC const char *comparison_operator(ast_e tag) { } Text_t compile_comparison(env_t *env, ast_t *ast) { - switch (ast->tag) { case Equals: case NotEquals: { binary_operands_t binop = BINARY_OPERANDS(ast); type_t *lhs_t = get_type(env, binop.lhs); - type_t *rhs_t = get_type(env, binop.rhs); + type_t *rhs_t = get_type(with_enum_scope(env, lhs_t), binop.rhs); type_t *operand_t; if (binop.lhs->tag == Int && is_numeric_type(rhs_t)) { operand_t = rhs_t; } else if (binop.rhs->tag == Int && is_numeric_type(lhs_t)) { operand_t = lhs_t; - } else if (can_compile_to_type(env, binop.rhs, lhs_t)) { + } else if (can_compile_to_type(with_enum_scope(env, lhs_t), binop.rhs, lhs_t)) { operand_t = lhs_t; } else if (can_compile_to_type(env, binop.lhs, rhs_t)) { operand_t = rhs_t; |
