Diagnostic and cause
СсылкаWrong argument count
- Семейство
- topaz
- Этап
- check
- Код
TPZ5004
Причина и условия
A call must supply every required parameter. Calling a one-parameter function with no arguments is rejected with TPZ5004 at the call expression.
Связанное правило · A call must supply its required parameters →Действия
Compare the call with its declaration. Supply the required parameters once and use names accepted by that callable.
Compiler phase: check/runtime.
Compiler explanation: A call supplied too few, too many, or duplicate arguments for the callable shape.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
- a protocol call
⟨value⟩.takes positional arguments only Source⟨value⟩(…) - newtype
⟨value⟩constructor takes 1 argument (the⟨value⟩to wrap), found ⟨value⟩ Source ⟨value⟩takes ⟨value⟩ ⟨value⟩, found ⟨value⟩ Source- the pipeline inserts the piped value, but this function takes no parameters Source
- this call needs ⟨value⟩⟨value⟩ ⟨value⟩, found ⟨value⟩ Source
- named arguments must follow spread arguments Source
- a spread argument cannot skip an unsatisfied fixed parameter Source
- positional arguments may not follow named arguments Source
- a protocol call
⟨value⟩(…)takes positional arguments only Source - spread arguments require a variadic parameter Source
- this call needs ⟨value⟩ ⟨value⟩, found ⟨value⟩ Source
- the left side of
>>takes exactly one argument (§11) Source - the right side of
>>takes exactly one argument (§11) Source - a pipeline stage takes the piped value as its only argument (§11) Source
- this lambda takes ⟨value⟩ parameter(s), but a function taking ⟨value⟩ is expected Source
- record
⟨value⟩is missing field⟨value⟩ ⟨value⟩ Source - newtype
⟨value⟩pattern takes 1 subpattern (the wrapped⟨value⟩), found ⟨value⟩ Source - enum variant
⟨value⟩.takes ⟨value⟩, found ⟨value⟩ Source⟨value⟩
Observed for the candidate in Topaz 5.21.3. Execution
- error[TPZ5004]: this call needs 1 argument, found 0
A call must supply every required parameter. Calling a one-parameter function with no arguments is rejected with TPZ5004 at the call expression.
A call must supply its required parameters
A call must supply every required parameter. Calling a one-parameter function with no arguments is rejected with TPZ5004 at the call expression.
Response
СсылкаCompare the call with its declaration. Supply the required parameters once and use names accepted by that callable.
Reproduction and verification
СсылкаRejected program
Ссылкаfunction identity(value: int) -> int { value }let result = identity()
Нет стандартного вывода.Ожидаемый результат
Ожидаемый результат
Этап отклонения check. Ненулевой код завершения.
diagnostic-tpz5004 at
example.tpz:2:14
Repaired program
Ссылкаfunction identity(value: int) -> int { value }let result = identity(1)
Ожидаемый результат
Ожидаемый результат
Проверка принимает программу. Код завершения 0.