mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
fix variadic parameter with default value error check
This commit is contained in:
+5
-2
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user