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

collection_element_from_deferred_library

遅延ロードされたライブラリからの定数値は、'const' マップリテラルのキーとして使用できません。

遅延ロードされたライブラリからの定数値は、'const' コンストラクタの値として使用できません。

遅延ロードされたライブラリからの定数値は、'const' リストリテラルの値として使用できません。

遅延ロードされたライブラリからの定数値は、'const' マップリテラルの値として使用できません。

遅延ロードされたライブラリからの定数値は、'const' セットリテラルの値として使用できません。

説明

#

アナライザがこの診断を生成するのは、明示的に (const キーワードでプレフィックスされているため) または暗黙的に (定数コンテキストに現れるため) 定数であるコレクションリテラルに、遅延インポートを使用してインポートされたライブラリで宣言された値が含まれている場合です。定数はコンパイル時に評価され、遅延ライブラリの値はコンパイル時には利用できません。

詳細については、ライブラリの遅延ロード を参照してください。

#

定数 zero を定義するファイル a.dart があるとします。

dart
const zero = 0;

次のコードは、定数リストリテラルに deferred インポートを使用してインポートされた a.zero が含まれているため、この診断を生成します。

dart
import 'a.dart' deferred as a;

var l = const [a.zero];

一般的な修正

#

コレクションリテラルが定数である必要がない場合は、const キーワードを削除してください。

dart
import 'a.dart' deferred as a;

var l = [a.zero];

コレクションが定数で、インポートされた定数を参照する必要がある場合は、インポートから deferred キーワードを削除してください。

dart
import 'a.dart' as a;

var l = const [a.zero];

定数を参照する必要がない場合は、適切な値に置き換えてください。

dart
var l = const [0];