struct内の不正なフィールド型
structクラスのフィールドは「{0}」という型にすることはできません。宣言できるのは、「int」、「double」、「Array」、「Pointer」、または「Struct」や「Union」のサブタイプのみです。
説明
#Structのサブクラス内のフィールドの型が、int、double、Array、Pointer、またはStructやUnionのサブタイプ以外の型である場合に、アナライザーはこの診断を生成します。
FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。
例
#以下のコードは、フィールドstrの型がStringであり、これはStructのサブクラスのフィールドで許可されている型ではないため、この診断を生成します。
dart
import 'dart:ffi';
final class C extends Struct {
external String s;
@Int32()
external int i;
}一般的な修正
#フィールドに許可されている型のいずれかを使用してください
dart
import 'dart:ffi';
import 'package:ffi/ffi.dart';
final class C extends Struct {
external Pointer<Utf8> s;
@Int32()
external int i;
}