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

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

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

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

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

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

    Two physical module candidates collide under exact, normalized, or folded path identity.

    Diagnostic and cause

    Ссылка

    Module path collision

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

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

    A module path is rejected with TPZ3004 when two same-kind sibling entries match the same normalized or case-folded module name.

    Действия

    Rename or remove one candidate, then update its imports. Keep module path spellings distinct after normalization and case folding.

    Compiler phase: resolve.

    Compiler explanation: Two physical module candidates collide under exact, normalized, or folded path identity.

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

    • the path ⟨value⟩ collides with another candidate under the module name keys⟨value⟩ Source
    • the modules ⟨value⟩ and ⟨value⟩ resolve to the same physical file; one physical file cannot have two module identities Source

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ3004]: the path lib collides with another candidate under the module name keys: Lib.tpz / lib.tpz

    More than one filesystem entry matches a module segment after Unicode normalization or case folding. Here lib.tpz and Lib.tpz collide on a filesystem that preserves both names.

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

    Trigger and repair

    A module path is rejected with TPZ3004 when two same-kind sibling entries match the same normalized or case-folded module name.

    Response

    Ссылка

    Rename or remove one candidate, then update its imports. Keep module path spellings distinct after normalization and case folding.

    Reproduction and verification

    Ссылка

    Rejected program

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

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

    Этап отклонения 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
    Ожидаемый выводКод завершения 0
    $ topaz check example.tpz · Целевой продукт 5.21.3
    lib.tpzCorrected programОткрыть песочницу →
    1. export let value = 1
    Ожидаемый результат

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

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

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

    Меню

    Загрузка →