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

const_constructor_with_non_const_super

定数コンストラクタは、「{0}」の非定数スーパークラスコンストラクタを呼び出すことはできません。

説明

#

const としてマークされたコンストラクタが、const としてマークされていないスーパークラスのコンストラクタを呼び出す場合に、アナライザーはこの診断を生成します。

#

以下のコードは、Bconst コンストラクタがクラス AnonConst コンストラクタを呼び出し、スーパークラスのコンストラクタが const コンストラクタではないため、この診断を生成します。

dart
class A {
  const A();
  A.nonConst();
}

class B extends A {
  const B() : super.nonConst();
}

一般的な修正

#

現在呼び出されているスーパークラスコンストラクタの呼び出しが必須でない場合は、スーパークラスの定数コンストラクタを呼び出してください。

dart
class A {
  const A();
  A.nonConst();
}

class B extends A {
  const B() : super();
}

現在のコンストラクタの呼び出しが必須であり、それを変更できる場合は、スーパークラスのコンストラクタに const を追加してください。

dart
class A {
  const A();
  const A.nonConst();
}

class B extends A {
  const B() : super.nonConst();
}

現在のコンストラクタの呼び出しが必須であり、それを変更できない場合は、サブクラスのコンストラクタから const を削除してください。

dart
class A {
  const A();
  A.nonConst();
}

class B extends A {
  B() : super.nonConst();
}