variable_length_array_not_last
可変長の「Array」は、Struct の最後のフィールドでのみ発生する必要があります。
説明
#アナライザーは、可変長のインライン Array が Struct の最後のメンバーでない場合に、この診断を生成します。
FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。
例
#以下のコードは、フィールド a0 が 3 つのネストされた配列の型を持っていますが、Array アノテーションで 2 つの次元しか与えられていないため、この診断を生成します。
dart
import 'dart:ffi';
final class C extends Struct {
@Array.variable()
external Array<Uint8> a0;
@Uint8()
external int a1;
}一般的な修正
#可変長のインライン Array を、struct の最後のフィールドになるように移動してください。
dart
import 'dart:ffi';
final class C extends Struct {
@Uint8()
external int a1;
@Array.variable()
external Array<Uint8> a0;
}インライン配列のサイズが固定されている場合は、サイズをアノテーションで指定してください。
dart
import 'dart:ffi';
final class C extends Struct {
@Array(10)
external Array<Uint8> a0;
@Uint8()
external int a1;
}