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

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

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

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

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

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

    An extern module or function declaration is missing, malformed, duplicated, or not declared for an imported extern module.

    Diagnostic and cause

    Ссылка

    Extern declaration problem

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

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

    Import each extern module by an identity declared in topaz.toml. A missing module under an already declared extern namespace is rejected as TPZ5030.

    Действия

    Declare the extern interface in topaz.toml and check its names and signatures. Import the module identity that the package declares.

    Compiler phase: check/package.

    Compiler explanation: An extern module or function declaration is missing, malformed, duplicated, or not declared for an imported extern module.

    Message templates are Pending. The explanation above is not an observed CLI message.

    Import each extern module by an identity declared in topaz.toml. A missing module under an already declared extern namespace is rejected as TPZ5030.

    Правилоdiagnostics.tpz5030.p5.rule

    Extern declaration problem

    Import each extern module by an identity declared in topaz.toml. A missing module under an already declared extern namespace is rejected as TPZ5030.

    Response

    Ссылка

    Declare the extern interface in topaz.toml and check its names and signatures. Import the module identity that the package declares.

    Reproduction and verification

    Ссылка

    Rejected program

    Ссылка
    main.tpzRejected programОткрыть песочницу →
    1. import host.missing { twice }
    2. export function main(args: Array<string>, stdin: string) -> Result<int, string> {
    3. Ok(0)
    4. }
    Ожидаемый выводНенулевой код завершения
    Нет стандартного вывода.
    $ topaz check --language-version 5.21 --compiler self · Целевой продукт 5.21.3
    topaz.tomlRejected programОткрыть песочницу →
    1. [package]
    2. name = "diagnostic_extern"
    3. version = "0.1.0"
    4. language = "5.21"
    5. entry = "main.tpz"
    6. [extern.host.math]
    7. hash = "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    8. abi_hash = "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
    9. [[extern.host.math.functions]]
    10. name = "twice"
    11. params = ["int"]
    12. result = "int"
    13. [extern.host.math.replay]
    14. fixture = "replay/host-math.jsonl"
    15. [extern.host.math.sandbox]
    16. kind = "replay"
    replay/host-math.jsonlRejected programОткрыть песочницу →
    1. {"module":"host.math","function":"twice","args":[{"$":"int","value":"21"}],"result":{"$":"int","value":"42"}}
    Ожидаемый результат

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

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

    • TPZ5030 →

      diagnostics-undeclared-extern-module at main.tpz:1:8

    This complete package fixture uses invocationArgs without a positional source file.

    Repaired program

    Ссылка
    main.tpzRepaired programОткрыть песочницу →
    1. import host.math { twice }
    2. export function main(args: Array<string>, stdin: string) -> Result<int, string> {
    3. Ok(0)
    4. }
    Ожидаемый выводКод завершения 0
    $ topaz check --language-version 5.21 --compiler self · Целевой продукт 5.21.3
    topaz.tomlRepaired programОткрыть песочницу →
    1. [package]
    2. name = "diagnostic_extern"
    3. version = "0.1.0"
    4. language = "5.21"
    5. entry = "main.tpz"
    6. [extern.host.math]
    7. hash = "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    8. abi_hash = "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
    9. [[extern.host.math.functions]]
    10. name = "twice"
    11. params = ["int"]
    12. result = "int"
    13. [extern.host.math.replay]
    14. fixture = "replay/host-math.jsonl"
    15. [extern.host.math.sandbox]
    16. kind = "replay"
    replay/host-math.jsonlRepaired programОткрыть песочницу →
    1. {"module":"host.math","function":"twice","args":[{"$":"int","value":"21"}],"result":{"$":"int","value":"42"}}
    Ожидаемый результат

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

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

    This complete package fixture uses invocationArgs without a positional source file.

    Меню

    Загрузка →