跳到主要内容

abi_specific_integer_mapping_unsupported

无效映射到“{0}”;仅支持映射到“Int8”、“Int16”、“Int32”、“Int64”、“Uint8”、“Uint16”、“UInt32”和“Uint64”。

描述

#

AbiSpecificIntegerMapping 注解的映射参数中的值不是以下任一整数类型时,分析器会产生此诊断信息:

  • Int8
  • Int16
  • Int32
  • Int64
  • Uint8
  • Uint16
  • UInt32
  • Uint64

示例

#

以下代码会产生此诊断信息,因为映射条目的值为 Array<Uint8>,这不是一个有效的整数类型:

dart
import 'dart:ffi';

@AbiSpecificIntegerMapping({Abi.macosX64 : Array<Uint8>(4)})
final class C extends AbiSpecificInteger {
  const C();
}

常见修复方法

#

使用其中一个有效类型作为映射中的值

dart
import 'dart:ffi';

@AbiSpecificIntegerMapping({Abi.macosX64 : Int8()})
final class C extends AbiSpecificInteger {
  const C();
}