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

sdk_version_ui_as_code

for、if、およびスプレッド要素はバージョン2.3.0までサポートされていませんでしたが、このコードは以前のバージョンで実行できるようにする必要があります。

説明

#

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

#

以下は、SDK制約の下限が2.3.0未満で定義されているpubspecの例です。

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

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

dart
var digits = [for (int i = 0; i < 10; i++) i];

一般的な修正

#

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

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

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

dart
var digits = _initializeDigits();

List<int> _initializeDigits() {
  var digits = <int>[];
  for (int i = 0; i < 10; i++) {
    digits.add(i);
  }
  return digits;
}