Crear un nuevo proyecto de herramienta de línea de comandos de macOS en Xcode versión 13.3 (13E113) y reemplazar el contenido de main.swift con el siguiente código:
import Foundation enum StructA { // case case1(value: StructB) case case2(expr: StructB) } indirect enum StructB { case case3 case case4(expr: StructB) }Da como resultado el siguiente error en tiempo de compilación:
<unknown>:0: error: circular reference /Users/alextj/projects/TestProject/main.swift:8:15: note: through reference here indirect enum StructB { ^ <unknown>:0: note: through reference here Sin embargo , si quita el comentario de la línea case1 , ¡entonces el error de referencia circular desaparece!
Así que el siguiente código se compila sin errores:
import Foundation enum StructA { case case1(value: StructB) case case2(expr: StructB) } indirect enum StructB { case case3 case case4(expr: StructB) }¿Por qué?
¿Por qué comentar el case1 1 provoca una referencia circular?