E4155#
const,fnalias,typealias 或 traitalias 声明里有循环定义。
const 声明中可以使用同一个包内定义的其他常量。fnalias 也可以指代同一个包内的其他函数别名。typealias 和 traitalias 也可以指代同一个包内的其他 typealias/traitalias。但如果这些声明中有循环定义,编译器就会产生本错误。
错误示例#
///|
const A : Int = B + 1
///|
const B : Int = A + 1
///|
fnalias f as g
///|
fnalias g as f
///|
typealias T1 as T2
///|
typealias T2 as T1
///|
traitalias I1 as I2
///|
traitalias I2 as I1