Diagnostic and cause
СсылкаModule namespace collision
- Семейство
- topaz
- Этап
- resolve
- Код
TPZ3008
Причина и условия
Two declarations binding the same top-level name in one module produce TPZ3008.
Связанное правило · Trigger and repair →Действия
Rename one declaration or import alias. Check the local names introduced by selected imports as well.
Compiler phase: resolve.
Compiler explanation: Two declarations in one module bind the same namespace name.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
⟨value⟩is already bound at this module's top level (first binding at byte ⟨value⟩) Source
Observed for the candidate in Topaz 5.21.3. Execution
- error[TPZ3008]:
valueis already bound at this module's top level (first binding at byte 4)
A top-level declaration or import binds a name already present in the module table. The example declares value twice.
Trigger and repair
Two declarations binding the same top-level name in one module produce TPZ3008.
Response
СсылкаRename one declaration or import alias. Check the local names introduced by selected imports as well.
Reproduction and verification
СсылкаRejected program
Ссылкаlet value = 1let value = 2
Нет стандартного вывода.Ожидаемый результат
Ожидаемый результат
Этап отклонения resolve. Ненулевой код завершения.
diagnostic-tpz3008 at
example.tpz:2:5
The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.
Corrected program
Ссылкаlet value = 1let other = 2
Ожидаемый результат
Ожидаемый результат
Проверка принимает программу. Код завершения 0.
This program applies the repair described above. The verification status records whether it has been run.