Browse Source

Fix Using any in if statement asserts compiler #441

gingerBill 5 years ago
parent
commit
dae514a2c9
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/check_expr.cpp

+ 3 - 1
src/check_expr.cpp

@@ -1580,8 +1580,10 @@ void check_cast_error_suggestion(CheckerContext *c, Operand *o, Type *type) {
 
 
 
 
 void check_is_expressible(CheckerContext *c, Operand *o, Type *type) {
 void check_is_expressible(CheckerContext *c, Operand *o, Type *type) {
-	GB_ASSERT(is_type_constant_type(type));
 	GB_ASSERT(o->mode == Addressing_Constant);
 	GB_ASSERT(o->mode == Addressing_Constant);
+	if (!is_type_constant_type(type)) {
+		return;
+	}
 	if (!check_representable_as_constant(c, o->value, type, &o->value)) {
 	if (!check_representable_as_constant(c, o->value, type, &o->value)) {
 		gbString a = expr_to_string(o->expr);
 		gbString a = expr_to_string(o->expr);
 		gbString b = type_to_string(type);
 		gbString b = type_to_string(type);