メインコンテンツにスキップ

subtype_of_struct_class

クラス「{0}」は「{1}」を拡張できません。なぜなら、「{1}」は「Struct」、「Union」、または「AbiSpecificInteger」のサブタイプだからです。

クラス「{0}」は「{1}」を実装できません。なぜなら、「{1}」は「Struct」、「Union」、または「AbiSpecificInteger」のサブタイプだからです。

クラス「{0}」は「{1}」をミックスインできません。なぜなら、「{1}」は「Struct」、「Union」、または「AbiSpecificInteger」のサブタイプだからです。

説明

#

アナライザーは、クラスが Struct または Union を拡張するクラスを拡張、実装、またはミックスインする場合にこの診断を生成します。クラスは Struct または Union のみを直接拡張できます。

FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。

#

次のコードは、クラス CS を拡張し、SStruct を拡張するため、この診断を生成します。

dart
import 'dart:ffi';

final class S extends Struct {
  external Pointer f;
}

final class C extends S {
  external Pointer g;
}

一般的な修正

#

別の構造体または共用体によって宣言された一部のフィールドを共有する構造体または共用体を定義しようとしている場合は、Struct または Union を直接拡張し、共有フィールドをコピーしてください。

dart
import 'dart:ffi';

final class S extends Struct {
  external Pointer f;
}

final class C extends Struct {
  external Pointer f;

  external Pointer g;
}