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

no_combined_super_signature

オーバーライドされたメソッドから、'{0}' の欠落している型を推論できません: {1}。

説明

#

この診断は、メソッド宣言に対して1つ以上の型を推論する必要があり、それらの型は、オーバーライド推論で指定されたとおり、他のすべてのオーバーライドされたメソッドのスーパータイプである関数型を持つメソッドがないため推論できない場合に、アナライザーによって生成されます。

#

以下のコードは、クラスCで宣言されたメソッドmが戻り値の型とパラメータaの型を両方とも欠いており、欠落している型のどちらも推論できないために、この診断を生成します。

dart
abstract class A {
  A m(String a);
}

abstract class B {
  B m(int a);
}

abstract class C implements A, B {
  m(a);
}

この例では、オーバーライドされたメソッドがこれらの点で互換性がないため、オーバーライド推論を実行できません。

  • どちらのパラメータ型 (String および int) も、もう一方のスーパータイプではありません。
  • どちらの戻り値の型も、もう一方のサブタイプではありません。

一般的な修正

#

可能であれば、サブクラスのメソッドに、オーバーライドされたすべてのメソッドの型と互換性のある型を追加してください。

dart
abstract class A {
  A m(String a);
}

abstract class B {
  B m(int a);
}

abstract class C implements A, B {
  C m(Object a);
}