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

sdk_version_ui_as_code_in_const_context

if文とspread要素は、バージョン2.5.0まで定数式ではサポートされていませんでしたが、このコードはそれ以前のバージョンでも実行できるようにする必要があります。

説明

#

アナライザーは、SDK制約の最小バージョンが2.5.0未満であるコードで、定数コンテキスト内のifまたはspread要素が見つかった場合に、この診断を生成します。以前のバージョンでは、定数コンテキスト内でのifまたはspread要素の使用はサポートされていなかったため、このコードはSDKの以前のバージョンでは実行できません。

#

以下は、2.5.0未満の最小バージョンを持つSDK制約を定義するpubspecの例です。

yaml
environment:
  sdk: '>=2.4.0 <2.6.0'

その`pubspec.yaml`を持つパッケージでは、次のようなコードがこの診断を生成します。

dart
const a = [1, 2];
const b = [...a];

一般的な修正

#

古いバージョンのSDKをサポートする必要がない場合は、SDK制約を増やして構文を使用できるようにすることができます。

yaml
environment:
  sdk: '>=2.5.0 <2.6.0'

古いバージョンのSDKをサポートする必要がある場合は、それらの要素を使用しないようにコードを書き直してください。

dart
const a = [1, 2];
const b = [1, 2];

それが不可能な場合は、要素が定数コンテキストにないようにコードを変更してください。

dart
const a = [1, 2];
var b = [...a];