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

body_might_complete_normally

メソッドの本体が正常に完了し、「null」が返される可能性がありますが、返却型 `{0}` は、null許容ではない可能性がある型です。

説明

#

この診断は、メソッドまたは関数の返却型がnull許容ではない可能性があるものの、関数の末尾に到達した場合に暗黙的にnullを返すときにアナライザーによって生成されます。

#

次のコードは、メソッドmの末尾に暗黙的にnullの返却が挿入され、メソッドがnullを返さないように宣言されているため、この診断を生成します。

dart
class C {
  int m(int t) {
    print(t);
  }
}

次のコードは、メソッドmの末尾に暗黙的にnullの返却が挿入され、クラスCがnull許容ではない型引数でインスタンス化できるため、メソッドが実質的にnullを返さないように宣言されているため、この診断を生成します。

dart
class C<T> {
  T m(T t) {
    print(t);
  }
}

一般的な修正

#

返却できる合理的な値がある場合は、メソッドの末尾にreturnステートメントを追加してください。

dart
class C<T> {
  T m(T t) {
    print(t);
    return t;
  }
}

メソッドが暗黙的な返却に到達しない場合は、メソッドの末尾にthrowを追加してください。

dart
class C<T> {
  T m(T t) {
    print(t);
    throw '';
  }
}

メソッドが意図的に末尾でnullを返却する場合は、メソッドの末尾に明示的なnullの返却を追加し、nullの返却を有効にするように返却型を変更してください。

dart
class C<T> {
  T? m(T t) {
    print(t);
    return null;
  }
}