E4173#

Compiler diagnostic name: invalid_value_type_attr.

Invalid #valtype declaration.

#valtype は、型を値型として表現するようコンパイラに要求します。値型のフィールドは不変でなければならないため、可変フィールドを含む宣言は拒否されます。

Erroneous example#

#valtype
struct Counter {
  mut value : Int
}

フィールド value は可変です。

Suggestion#

フィールドを不変にしてください。その型でインプレース変更が必要な場合は、#valtype を削除します。

#valtype
struct Point {
  x : Int
  y : Int
}