abi_specific_integer_mapping_extra 진단: AbiSpecificIntegerMapping 주석이 너무 많을 때

abi_specific_integer_mapping_extra 진단: AbiSpecificIntegerMapping 주석이 너무 많을 때

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

출처: abi_specific_integer_mapping_extra

본문

AbiSpecificInteger를 상속하는 클래스는 ABI에서 고정 크기를 가진 NativeType 정수로의 매핑을 지정하는 AbiSpecificIntegerMapping 주석을 정확히 하나만 가져야 해요.

설명

분석기는 AbiSpecificInteger를 상속하는 클래스에 AbiSpecificIntegerMapping 주석이 두 개 이상 있을 때 이 진단을 만들어요.

예시

다음 코드는 클래스 CAbiSpecificIntegerMapping 주석이 두 개 있기 때문에 이 진단을 만들어요.

import 'dart:ffi';

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

흔한 해결 방법

주석을 하나만 남기고 나머지는 제거하면서, 적절하게 인자를 병합해요.

import 'dart:ffi';

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

더 알아보기