소스 검색

Fix edge case for procedures

gingerBill 1 년 전
부모
커밋
dc5cfacc0a
1개의 변경된 파일6개의 추가작업 그리고 6개의 파일을 삭제
  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