mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-31 11:50:07 +00:00
Improve ternary if type inference
This commit is contained in:
+5
-1
@@ -7241,7 +7241,11 @@ ExprKind check_ternary_if_expr(CheckerContext *c, Operand *o, Ast *node, Type *t
|
|||||||
node->viral_state_flags |= te->x->viral_state_flags;
|
node->viral_state_flags |= te->x->viral_state_flags;
|
||||||
|
|
||||||
if (te->y != nullptr) {
|
if (te->y != nullptr) {
|
||||||
check_expr_or_type(c, &y, te->y, type_hint);
|
Type *th = type_hint;
|
||||||
|
if (type_hint == nullptr && is_type_typed(x.type)) {
|
||||||
|
th = x.type;
|
||||||
|
}
|
||||||
|
check_expr_or_type(c, &y, te->y, th);
|
||||||
node->viral_state_flags |= te->y->viral_state_flags;
|
node->viral_state_flags |= te->y->viral_state_flags;
|
||||||
} else {
|
} else {
|
||||||
error(node, "A ternary expression must have an else clause");
|
error(node, "A ternary expression must have an else clause");
|
||||||
|
|||||||
Reference in New Issue
Block a user