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

mixin_on_sealed_class

クラス「{0}」は sealed クラスであるため、Mixin の制約として使用することはできません。この Mixin を使用するクラスは、{0} をスーパークラスとする必要があります。

説明

#

この診断は、Mixin のスーパークラス制約が、別のパッケージの `sealed` としてマークされたクラスである場合にアナライザーによって生成されます。sealed クラスは、拡張、実装、Mixin、またはスーパークラス制約として使用することはできません。

#

パッケージ `p` が sealed クラスを定義している場合

dart
import 'package:meta/meta.dart';

@sealed
class C {}

この場合、`p` 以外のパッケージで以下のコードがこの診断を生成します。

dart
import 'package:p/p.dart';

mixin M on C {}

一般的な修正

#

Mixin を使用するクラスが sealed クラスのサブクラスである必要がない場合は、フィールドを追加し、sealed クラスのラップされたインスタンスに委譲することを検討してください。