negative_variable_dimension
可变长度数组的可变维度必须是非负数。
描述
#分析器会在两种情况下产生此诊断信息。
第一种情况是,在 Array.variableWithVariableDimension
注解中给出的可变维度为负数时。可变维度是该注解的第一个参数。
第二种情况是,在 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;
}