non_sync_factory
ファクトリ本体では「async」「async*」「sync*」は使用できません。
説明
#ファクトリコンストラクタ本体がasync、async*、またはsync*でマークされている場合、アナライザはこの診断を生成します。ファクトリコンストラクタを含むすべてのコンストラクタは、宣言されているクラスのインスタンスを返す必要があり、Future、Stream、またはIteratorではありません。
例
#以下のコードは、ファクトリコンストラクタ本体がasyncでマークされているため、この診断を生成します。
dart
class C {
factory C() async {
return C._();
}
C._();
}一般的な修正
#メンバーをファクトリコンストラクタとして宣言する必要がある場合は、本体の前のキーワードを削除してください。
dart
class C {
factory C() {
return C._();
}
C._();
}エンクロージングクラスのインスタンス以外のものを返す必要がある場合は、メンバーをスタティックメソッドにしてください。
dart
class C {
static Future<C> m() async {
return C._();
}
C._();
}