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

private_collision_in_mixin_application

プライベート名「{0}」は、「{1}」によって定義されていますが、「{2}」によって定義されている同じ名前と競合しています。

説明

#

この診断は、2つのミックスインが同じプライベートメンバーを定義しており、それらのミックスインを定義したライブラリ以外のライブラリで、単一のクラス内で両方のミックスインが使用された場合に生成されます。

#

a.dart という名前のファイルに以下のコードが含まれている場合

dart
mixin A {
  void _foo() {}
}

mixin B {
  void _foo() {}
}

以下のコードは、ミックスイン AB が両方ともメソッド _foo を定義しているため、この診断を生成します。

dart
import 'a.dart';

class C extends Object with A, B {}

一般的な修正

#

両方のミックスインが必要ない場合は、with 句から一方のミックスインを削除してください。

dart
import 'a.dart';

class C extends Object with A, B {}

両方のミックスインが必要な場合は、2つのミックスインのいずれかで競合するメンバーの名前を変更してください。