abi_specific_integer_mapping_extra 진단: AbiSpecificIntegerMapping 주석이 너무 많을 때
abi_specific_integer_mapping_extra 진단: AbiSpecificIntegerMapping 주석이 너무 많을 때
Dart 분석기가 만들어 내는 abi_specific_integer_mapping_extra 진단에 대한 설명이에요.
본문
AbiSpecificInteger를 상속하는 클래스는 ABI에서 고정 크기를 가진 NativeType 정수로의 매핑을 지정하는 AbiSpecificIntegerMapping 주석을 정확히 하나만 가져야 해요.
설명
분석기는 AbiSpecificInteger를 상속하는 클래스에 AbiSpecificIntegerMapping 주석이 두 개 이상 있을 때 이 진단을 만들어요.
예시
다음 코드는 클래스 C에 AbiSpecificIntegerMapping 주석이 두 개 있기 때문에 이 진단을 만들어요.
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();
}