Răsfoiți Sursa

Fix edge case for procedures

gingerBill 1 an în urmă
părinte
comite
dc5cfacc0a
1 a modificat fișierele cu 6 adăugiri și 6 ștergeri
  1. 6 6
      src/check_type.cpp

+ 6 - 6
src/check_type.cpp

@@ -495,12 +495,12 @@ gb_internal Type *check_record_polymorphic_params(CheckerContext *ctx, Ast *poly
 				type = t_invalid;
 			}
 
-			// if (is_type_polymorphic_type) {
-			// 	gbString str = type_to_string(type);
-			// 	error(params[i], "Parameter types cannot be polymorphic, got %s", str);
-			// 	gb_string_free(str);
-			// 	type = t_invalid;
-			// }
+			if (is_type_polymorphic_type && !is_type_proc(type)) {
+				gbString str = type_to_string(type);
+				error(params[i], "Parameter types cannot be polymorphic, got %s", str);
+				gb_string_free(str);
+				type = t_invalid;
+			}
 
 			if (!is_type_param && check_constant_parameter_value(type, params[i])) {
 				// failed