struct 클래스 필드에 타입이 명시되지 않은 경우
struct 클래스 필드에 타입이 명시되지 않은 경우 (missing_field_type_in_struct)
Struct나 Union을 상속받는 클래스의 필드에 타입 어노테이션이 없을 때 나오는 진단이에요. 모든 필드는 명시적인 타입을 가져야 하고, 그 타입은 int나 double, Pointer 또는 Struct·Union의 하위 클래스 중 하나여야 해요.
출처: Fields in struct classes must have an explicitly declared type of 'int', 'double' or 'Pointer'.
본문
이 진단은 Struct나 Union을 상속받는 클래스의 필드에 타입 어노테이션이 없을 때 분석기가 만들어내요. 모든 필드는 명시적인 타입을 가져야 하며, 그 타입은 int, double, Pointer 또는 Struct·Union의 하위 클래스 중 하나여야 해요.
FFI에 대해 더 알고 싶다면 C interop using dart:ffi 문서를 참고하세요.
예시
아래 코드는 필드 str에 타입 어노테이션이 없어서 이 진단이 나와요.
import 'dart:ffi';
final class C extends Struct {
external var str;
@Int32()
external int i;
}
해결 방법
필드의 타입을 명시적으로 지정해 주세요.
import 'dart:ffi';
import 'package:ffi/ffi.dart';
final class C extends Struct {
external Pointer<Utf8> str;
@Int32()
external int i;
}
더 알아보기
- C interop using dart:ffi — Dart에서 C 코드와 연동하는 법을 다루는 공식 가이드예요.