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

assert_in_redirecting_constructor

リダイレクトコンストラクタには 'assert' 初期化子を含めることはできません。

説明

#

アナライザは、同じクラス内の別のコンストラクタにリダイレクトするリダイレクトコンストラクタの初期化子リストに assert が含まれている場合に、この診断を生成します。

#

以下のコードは、名前のないコンストラクタがリダイレクトコンストラクタであり、初期化子リストに assert が含まれているため、この診断を生成します。

dart
class C {
  C(int x) : assert(x > 0), this.name();
  C.name() {}
}

一般的な修正

#

assert が不要な場合は、削除してください。

dart
class C {
  C(int x) : this.name();
  C.name() {}
}

assert が必要な場合は、コンストラクタをファクトリコンストラクタに変換してください。

dart
class C {
  factory C(int x) {
    assert(x > 0);
    return C.name();
  }
  C.name() {}
}