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

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

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

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

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

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

    A map literal contains the same constant key more than once.

    Diagnostic and cause

    Ссылка

    Duplicate key in map literal

    Семейство
    topaz
    Этап
    check
    Код
    TPZ5602

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

    Two map-literal keys with identical literal spelling are rejected with TPZ5602 at the repeated key. Different string keys are accepted.

    Действия

    Remove the repeated entry or use a different key. Combine values before constructing the map when both entries describe the same key.

    Compiler phase: check.

    Compiler explanation: A map literal contains the same constant key more than once.

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

    • duplicate key in map { … } literal Source

    Observed for the candidate in Topaz 5.21.3. Execution

    • error[TPZ5602]: duplicate key in map { … } literal

    Two map-literal keys with identical literal spelling are rejected with TPZ5602 at the repeated key. Different string keys are accepted.

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

    Repeated literal map key

    Two map-literal keys with identical literal spelling are rejected with TPZ5602 at the repeated key. Different string keys are accepted.

    Response

    Ссылка

    Remove the repeated entry or use a different key. Combine values before constructing the map when both entries describe the same key.

    Reproduction and verification

    Ссылка

    Rejected program

    Ссылка
    example.tpzRejected programОткрыть песочницу →
    1. let values = map { "a": 1, "a": 2 }
    Ожидаемый выводНенулевой код завершения
    Нет стандартного вывода.
    $ topaz check example.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

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

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

    • TPZ5602 →

      repeated-identical-string-key-in-map-literal at example.tpz:1:28

    The SELF check compares the literal kind and source spelling. This example does not claim static detection of equal values written with different spellings.

    Repaired program

    Ссылка
    example.tpzRepaired program
    1. let values = map { "a": 1, "b": 2 }
    Ожидаемый выводКод завершения 0
    $ topaz check example.tpz · Целевой продукт 5.21.3
    Ожидаемый результат

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

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

    The SELF check compares the literal kind and source spelling. This example does not claim static detection of equal values written with different spellings.

    Меню

    Загрузка →