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

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

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

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

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

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

    A module namespace binding appears where a runtime value is required.

    Diagnostic and cause

    Ссылка

    Namespace used as value

    Семейство
    topaz
    Этап
    resolve
    Код
    TPZ3012

    Причина и условия

    Reading an imported namespace as a standalone value produces TPZ3012. Select an exported member instead.

    Действия

    Select an exported member, such as ns.member, before storing or passing the value.

    Compiler phase: resolve.

    Compiler explanation: A module namespace binding appears where a runtime value is required.

    Message templates. The marker ⟨value⟩ stands for text computed for the reported program.

    • ⟨value⟩ is a namespace, not a value; it may appear only as ⟨value⟩.member Source

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ3012]: ns is a namespace, not a value; it may appear only as ns.member

    The expression names the module namespace itself. A namespace provides member access and is not a runtime value.

    Правилоdiagnostics.tpz3012.rule

    Trigger and repair

    Reading an imported namespace as a standalone value produces TPZ3012. Select an exported member instead.

    Response

    Ссылка

    Select an exported member, such as ns.member, before storing or passing the value.

    Reproduction and verification

    Ссылка

    Rejected program

    Ссылка
    example.tpzRejected programОткрыть песочницу →
    1. import lib as ns
    2. let value = ns
    Ожидаемый выводНенулевой код завершения
    Нет стандартного вывода.
    $ topaz check example.tpz · Целевой продукт 5.21.3
    lib.tpzRejected programОткрыть песочницу →
    1. export let member = 1
    Ожидаемый результат

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

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

    The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.

    Corrected program

    Ссылка
    example.tpzCorrected programОткрыть песочницу →
    1. import lib as ns
    2. let value = ns.member
    Ожидаемый выводКод завершения 0
    $ topaz check example.tpz · Целевой продукт 5.21.3
    lib.tpzCorrected programОткрыть песочницу →
    1. export let member = 1
    Ожидаемый результат

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

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

    This program applies the repair described above. The verification status records whether it has been run.

    Меню

    Загрузка →