prefer_const_literals_to_create_immutables
'@immutable' クラスのコンストラクタの引数には、'const' リテラルを使用してください。
説明
#この診断は、`@immutable` アノテーションが付いたクラスで宣言されたコンストラクタに、const ではないリスト、マップ、またはセットのリテラルが引数として渡された場合に、アナライザーによって生成されます。
例
#次のコードは、リストリテラル ([1]) がイミュータブルクラスのコンストラクタに渡されていますが、定数リストではないため、この診断を生成します。
dart
import 'package:meta/meta.dart';
@immutable
class C {
final f;
const C(this.f);
}
C c = C([1]);一般的な修正
#コンテキストを定数コンテキストにできる場合は、そうしてください。
dart
import 'package:meta/meta.dart';
@immutable
class C {
final f;
const C(this.f);
}
const C c = C([1]);コンテキストを定数コンテキストにできないが、コンストラクタを `const` を使用して呼び出すことができる場合は、コンストラクタの呼び出しの前に `const` を追加してください。
dart
import 'package:meta/meta.dart';
@immutable
class C {
final f;
const C(this.f);
}
C c = const C([1]);コンテキストを定数コンテキストにできず、コンストラクタを `const` を使用して呼び出すことができない場合は、コレクションリテラルの前に `const` キーワードを追加してください。
dart
import 'package:meta/meta.dart';
@immutable
class C {
final f;
const C(this.f);
}
C c = C(const [1]);