跳到主要内容

non_sized_type_argument

类型“{1}”不是“{0}”的有效类型参数。类型参数必须是原生整型、“Float”、“Double”、“Pointer”,或者“Struct”、“Union”或“AbiSpecificInteger”的子类型。

描述

#

当类 Array 的类型参数不是有效类型之一时,分析器会产生此诊断信息:有效类型包括原生整型、FloatDoublePointer,或者 StructUnionAbiSpecificInteger 的子类型。

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

示例

#

以下代码会产生此诊断信息,因为 Array 的类型参数为 Void,而 Void 不是有效类型之一

dart
import 'dart:ffi';

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

常见修复方法

#

将类型参数更改为有效类型之一

dart
import 'dart:ffi';

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