Перейти к содержимому
Топаз6.0 · До релиза
Загрузка →

Поиск в документации

Спецификация 6.0

Выберите результат стрелками и нажмите Enter, чтобы открыть его.

Введите имя API, номер диагностики, правило или тему проекта.

    Диагностика TPZ5004

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

    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.

    Действия

    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⟩.⟨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.

    Правилоdiagnostics.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.

    Response

    Ссылка

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

    Reproduction and verification

    Ссылка

    Rejected program

    Ссылка
    example.tpzRejected programОткрыть песочницу →
    1. function identity(value: int) -> int { value }
    2. let result = identity()
    Ожидаемый выводНенулевой код завершения
    Нет стандартного вывода.
    $ topaz check example.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Этап отклонения check. Ненулевой код завершения.

    Repaired program

    Ссылка
    example.tpzRepaired program
    1. function identity(value: int) -> int { value }
    2. let result = identity(1)
    Ожидаемый выводКод завершения 0
    $ topaz check example.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

    Ожидаемый результат

    Проверка принимает программу. Код завершения 0.

    Меню

    Загрузка →