abi_specific_integer_mapping_unsupported 진단: 지원하지 않는 정수 타입 매핑

abi_specific_integer_mapping_unsupported 진단: 지원하지 않는 정수 타입 매핑

Dart 분석기가 만들어 내는 abi_specific_integer_mapping_unsupported 진단에 대한 설명이에요.

출처: 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>인데, 이는 유효한 정수 타입이 아니기 때문에 이 진단을 만들어요.

import 'dart:ffi';

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

흔한 해결 방법

맵의 값으로 유효한 타입 중 하나를 사용해요.

import 'dart:ffi';

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

더 알아보기