Improve ternary if type inference

This commit is contained in:
gingerBill
2022-05-11 12:15:10 +01:00
parent 8559790bd8
commit dca2fbccff

View File

@@ -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;
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;
} else {
error(node, "A ternary expression must have an else clause");