E4173#
编译器诊断名称:invalid_value_type_attr。
无效的 #valtype 声明。
#valtype 要求编译器将某个类型表示为值类型。并不是所有类型形状都能这样表示。如果声明需要装箱或运行时对象存储,编译器会拒绝它,例如包含类型参数字段、对象字段、可变字段、过多字段或嵌套值类型字段。
错误示例#
#valtype
struct Box[T] {
value : T
}
字段 value 的类型是类型参数 T。值类型必须具有具体且受支持的布局,因此这个泛型字段会被拒绝。
建议#
为值类型使用具体的标量字段;如果该类型需要泛型布局或装箱布局,则移除 #valtype。
#valtype
struct Point {
x : Int
y : Int
}