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

non_constant_list_element

const リテラルリストの値は定数である必要があります。

説明

#

定数リストリテラルの要素が定数値でない場合に、アナライザーはこの診断を生成します。リストリテラルは、明示的に (const キーワードが前に付いているため) または暗黙的に (定数コンテキストに表示されるため) 定数にすることができます。

#

暗黙的に定数であるリストリテラルに表示されているにもかかわらず、x が定数ではないため、次のコードはこの診断を生成します。

dart
var x = 2;
var y = const <int>[0, 1, x];

一般的な修正

#

リストが定数リストである必要がある場合は、要素を定数に変換してください。上記の例では、x の宣言に const キーワードを追加することを検討してください。

dart
const x = 2;
var y = const <int>[0, 1, x];

式を定数にできない場合は、リストも定数にできないため、リストが定数にならないようにコードを変更する必要があります。上記の例では、リストリテラルの前に const キーワードを削除することを意味します。

dart
var x = 2;
var y = <int>[0, 1, x];