Browse Source

Remove redundant code

JasperGeer 2 years ago
parent
commit
17894add95
1 changed files with 3 additions and 9 deletions
  1. 3 9
      src/check_expr.cpp

+ 3 - 9
src/check_expr.cpp

@@ -7347,13 +7347,6 @@ ExprKind check_ternary_if_expr(CheckerContext *c, Operand *o, Ast *node, Type *t
 	check_expr_or_type(c, &x, te->x, type_hint);
 	node->viral_state_flags |= te->x->viral_state_flags;
 
-    if (x.mode == Addressing_Type) {
-        gbString type_string = expr_to_string(x.expr);
-        error(node, "Type %s is invalid operand for ternary if expression", type_string);
-        gb_string_free(type_string);
-        return kind;
-    }
-
 	if (te->y != nullptr) {
 		Type *th = type_hint;
 		if (type_hint == nullptr && is_type_typed(x.type)) {
@@ -7366,8 +7359,9 @@ ExprKind check_ternary_if_expr(CheckerContext *c, Operand *o, Ast *node, Type *t
 		return kind;
 	}
 
-    if (y.mode == Addressing_Type) {
-        gbString type_string = expr_to_string(y.expr);
+    if (x.mode == Addressing_Type || y.mode == Addressing_Type) {
+        Ast *type_expr = (x.mode == Addressing_Type) ? x.expr : y.expr;
+        gbString type_string = expr_to_string(type_expr);
         error(node, "Type %s is invalid operand for ternary if expression", type_string);
         gb_string_free(type_string);
         return kind;