generic_struct_subclass 진단: 제네릭 Struct/Union 서브클래스는 만들 수 없어요

generic_struct_subclass 진단: 제네릭 Struct/Union 서브클래스는 만들 수 없어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. generic_struct_subclassStructUnion을 상속하는 클래스에 타입 매개변수가 있을 때 분석기가 알려주는 컴파일 타임 진단이에요. FFI에서 메모리 레이아웃을 다루는 StructUnion은 제네릭이 될 수 없기 때문에 이렇게 쓰면 문제가 돼요.

출처: generic_struct_subclass

본문

설명

분석기는 StructUnion 중 하나를 상속하는 서브클래스가 타입 매개변수를 가질 때 이 진단을 만들어요.

FFI에 대한 자세한 내용은 C interop using dart:ffi 문서를 참고해요.

예시

다음 코드는 클래스 S가 타입 매개변수 T를 정의하고 있기 때문에 이 진단이 발생해요:

import 'dart:ffi';

final class S<T> extends Struct {
  external Pointer notEmpty;
}

일반적인 수정 방법

클래스에서 타입 매개변수를 제거해요:

import 'dart:ffi';

final class S extends Struct {
  external Pointer notEmpty;
}

더 알아보기