Browse Source

Fix Panic with runtime.type_info_base #532

gingerBill 5 years ago
parent
commit
24bd370e1b
1 changed files with 6 additions and 2 deletions
  1. 6 2
      src/check_expr.cpp

+ 6 - 2
src/check_expr.cpp

@@ -4175,8 +4175,12 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
 			return false;
 		}
 		Type *t = o.type;
-		if (t == nullptr || t == t_invalid || is_type_polymorphic(operand->type)) {
-			error(ce->args[0], "Invalid argument for 'type_info_of'");
+		if (t == nullptr || t == t_invalid || is_type_polymorphic(t)) {
+			if (is_type_polymorphic(t)) {
+				error(ce->args[0], "Invalid argument for 'type_info_of', unspecialized polymorphic type");
+			} else {
+				error(ce->args[0], "Invalid argument for 'type_info_of'");
+			}
 			return false;
 		}
 		t = default_type(t);