Diagnostic and cause
СсылкаImport cycle
- Семейство
- topaz
- Этап
- resolve
- Код
TPZ3006
Причина и условия
A directed cycle in the module import graph produces TPZ3006.
Связанное правило · Trigger and repair →Действия
Remove a dependency from the cycle or put shared declarations in a third module that both modules can import.
Compiler phase: resolve.
Compiler explanation: The module graph contains a cyclic import dependency.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
- import cycle: ⟨value⟩ Source
- module imports itself:
⟨value⟩Source
Observed for the candidate in Topaz 5.21.3. Execution
- error[TPZ3006]: import cycle: first -> second -> first
The import graph leads back to a module already on the dependency path. The example forms first -> second -> first.
Trigger and repair
A directed cycle in the module import graph produces TPZ3006.
Response
СсылкаRemove a dependency from the cycle or put shared declarations in a third module that both modules can import.
Reproduction and verification
СсылкаRejected program
Ссылкаimport first
Нет стандартного вывода.import secondexport let one = 1
import firstexport let two = 2
Ожидаемый результат
Ожидаемый результат
Этап отклонения resolve. Ненулевой код завершения.
diagnostic-tpz3006 at
first.tpz:1:8
The expected diagnostic, cause, source location, and accompanying diagnostics are specified below. The verification status records whether this program has been run.
Corrected program
Ссылкаimport first
import secondexport let one = 1
export let two = 2
Ожидаемый результат
Ожидаемый результат
Проверка принимает программу. Код завершения 0.
This program applies the repair described above. The verification status records whether it has been run.