跳到主要内容

size_annotation_dimensions

'Array' 必须具有与其维度匹配的 'Array' 注解。

描述

#

Array 注解中指定的维度数量与字段类型指定的嵌套数组数量不匹配时,分析器会产生此诊断信息。

有关 FFI 的更多信息,请参阅 使用 dart:ffi 进行 C 互操作

示例

#

以下代码产生此诊断信息,因为字段 a0 的类型包含三个嵌套数组,但在 Array 注解中只给出了两个维度

dart
import 'dart:ffi';

final class C extends Struct {
  @Array(8, 8)
  external Array<Array<Array<Uint8>>> a0;
}

常见修复

#

如果字段类型正确,则修改注解以包含所需的维度数量

dart
import 'dart:ffi';

final class C extends Struct {
  @Array(8, 8, 4)
  external Array<Array<Array<Uint8>>> a0;
}

如果字段类型错误,则修改字段类型

dart
import 'dart:ffi';

final class C extends Struct {
  @Array(8, 8)
  external Array<Array<Uint8>> a0;
}