negative_variable_dimension
可変長配列の可変次元は、非負である必要があります。
説明
#アナライザーはこの診断を2つのケースで生成します。
1つ目は、Array.variableWithVariableDimension アノテーションで指定された可変次元が負の場合です。可変次元は、アノテーションの最初の引数です。
2つ目は、Array.variableMulti アノテーションで指定された可変次元が負の場合です。可変次元は、アノテーションの variableDimension 引数で指定されます。
FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。
例
#以下のコードは、Array.variableWithVariableDimension アノテーションで -1 の可変次元が提供されたため、この診断を生成します。
dart
import 'dart:ffi';
final class MyStruct extends Struct {
@Array.variableWithVariableDimension(-1)
external Array<Uint8> a0;
}以下のコードは、Array.variableMulti アノテーションで -1 の可変次元が提供されたため、この診断を生成します。
dart
import 'dart:ffi';
final class MyStruct2 extends Struct {
@Array.variableMulti(variableDimension: -1, [1, 2])
external Array<Array<Array<Uint8>>> a0;
}一般的な修正
#可変次元をゼロ (0) または正の数に変更してください。
dart
import 'dart:ffi';
final class MyStruct extends Struct {
@Array.variableWithVariableDimension(1)
external Array<Uint8> a0;
}可変次元をゼロ (0) または正の数に変更してください。
dart
import 'dart:ffi';
final class MyStruct2 extends Struct {
@Array.variableMulti(variableDimension: 1, [1, 2])
external Array<Array<Array<Uint8>>> a0;
}