Browse Source

fix variadic parameter with default value error check

Laytan 11 months ago
parent
commit
63cd9a031a
1 changed files with 5 additions and 2 deletions
  1. 5 2
      src/check_type.cpp

+ 5 - 2
src/check_type.cpp

@@ -1781,6 +1781,11 @@ gb_internal Type *check_get_params(CheckerContext *ctx, Scope *scope, Ast *_para
 					success = false;
 					success = false;
 				}
 				}
 
 
+				if (default_value != nullptr) {
+					error(type_expr, "A variadic parameter may not have a default value");
+					success = false;
+				}
+
 				GB_ASSERT(original_type_expr->kind == Ast_Ellipsis);
 				GB_ASSERT(original_type_expr->kind == Ast_Ellipsis);
 				type_expr = ast_array_type(type_expr->file(), original_type_expr->Ellipsis.token, nullptr, type_expr);
 				type_expr = ast_array_type(type_expr->file(), original_type_expr->Ellipsis.token, nullptr, type_expr);
 			}
 			}
@@ -1819,8 +1824,6 @@ gb_internal Type *check_get_params(CheckerContext *ctx, Scope *scope, Ast *_para
 			if (default_value != nullptr) {
 			if (default_value != nullptr) {
 				if (type_expr != nullptr && type_expr->kind == Ast_TypeidType) {
 				if (type_expr != nullptr && type_expr->kind == Ast_TypeidType) {
 					error(type_expr, "A type parameter may not have a default value");
 					error(type_expr, "A type parameter may not have a default value");
-				} else if (is_variadic) {
-					error(type_expr, "A variadic parameter may not have a default value");
 				} else {
 				} else {
 					param_value = handle_parameter_value(ctx, type, nullptr, default_value, true);
 					param_value = handle_parameter_value(ctx, type, nullptr, default_value, true);
 				}
 				}