non_sized_type_argument 진단: Array 타입 인자는 유효한 타입이어야 해요

non_sized_type_argument 진단: Array 타입 인자는 유효한 타입이어야 해요

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

출처: non_sized_type_argument

본문

Array 클래스의 타입 인자가 유효한 타입 중 하나가 아닐 때 분석기가 이 진단을 만들어요. 유효한 타입은 네이티브 정수, Float, Double, Pointer, 또는 Struct, Union, AbiSpecificInteger의 하위 타입이에요.

설명

Array의 타입 인자로 위에서 나열한 유효한 타입이 아닌 다른 타입을 쓰면 이 진단이 나와요.

FFI에 대한 더 자세한 내용은 C interop using dart:ffi에서 확인할 수 있어요.

예시

다음 코드는 Array의 타입 인자가 Void인데, Void는 유효한 타입이 아니기 때문에 이 진단을 만들어요.

import 'dart:ffi';

final class C extends Struct {
  @Array(8)
  external Array<Void> a0;
}

흔한 해결 방법

타입 인자를 유효한 타입 중 하나로 바꿔요.

import 'dart:ffi';

final class C extends Struct {
  @Array(8)
  external Array<Uint8> a0;
}

더 알아보기