This commit is contained in:
gingerBill
2023-08-05 15:01:21 +01:00
parent 8cdedd4cd2
commit 1481015dc4

View File

@@ -5478,6 +5478,8 @@ gb_internal CallArgumentError check_call_arguments_internal(CheckerContext *c, A
auto variadic_operands = slice(slice_from_array(positional_operands), positional_operand_count, positional_operands.count);
bool named_variadic_param = false;
if (named_operands.count != 0) {
GB_ASSERT(ce->split_args->named.count == named_operands.count);
for_array(i, ce->split_args->named) {
@@ -5503,6 +5505,9 @@ gb_internal CallArgumentError check_call_arguments_internal(CheckerContext *c, A
err = CallArgumentError_ParameterNotFound;
continue;
}
if (pt->variadic && param_index == pt->variadic_index) {
named_variadic_param = true;
}
if (visited[param_index]) {
if (show_error) {
error(arg, "Duplicate parameter '%.*s' in procedure call", LIT(name));
@@ -5704,11 +5709,6 @@ gb_internal CallArgumentError check_call_arguments_internal(CheckerContext *c, A
}
continue;
}
if (param_is_variadic) {
continue;
}
score += eval_param_and_score(c, o, e->type, err, param_is_variadic, e, show_error);
}
}