Skip to content
Topaz6.0 · Before release
Download

Search documentation

Specification 6.0 · Not released · Tested product 5.21.3

Use arrow keys to choose a result. Press Enter to open.

Type an API name, diagnostic number, rule, or project topic.

    Diagnostics

    TPZ5004: Wrong argument count

    A call supplied too few, too many, or duplicate arguments for the callable shape.

    Diagnostic and cause

    Link

    Wrong argument count

    Family
    topaz
    Phase
    check
    Code
    TPZ5004

    Cause and conditions

    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.

    Source evidence

    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⟩.⟨value⟩(…) takes positional arguments only Source
    • 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⟩.⟨value⟩ takes ⟨value⟩, found ⟨value⟩ Source

    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.

    Rulediagnostics.tpz5004.p5.rule

    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.

    Source evidence

    Response

    Link

    Compare the call with its declaration. Supply the required parameters once and use names accepted by that callable.

    Reproduction and verification

    Link

    Rejected program

    Link
    example.tpzRejected programOpen in Playground
    1. function identity(value: int) -> int { value }
    2. let result = identity()
    Expected outputNonzero exit
    No stdout.
    $ topaz check example.tpz · target product 5.21.3
    Expected result

    Expected result

    Rejection during check. Nonzero exit.

    • TPZ5004 diagnostic-tpz5004 at example.tpz:2:14
    Source evidence

    Repaired program

    Link
    example.tpzRepaired program
    1. function identity(value: int) -> int { value }
    2. let result = identity(1)
    Expected outputexit 0
    $ topaz check example.tpz · target product 5.21.3
    Expected result

    Expected result

    Checking accepts the program. Exit code 0.

    Source evidence

    Menu

    Download