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

sdk_version_as_expression_in_const_context

バージョン2.3.2まで、`as`式を定数式で使用することはサポートされていませんでしたが、このコードは以前のバージョンでも実行できる必要があります。

説明

#

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

#

2.3.2未満の低位境界を持つSDK制約を定義する`pubspec.yaml`の例を次に示します。

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

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

dart
const num n = 3;
const int i = n as int;

一般的な修正

#

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

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

古いバージョンのSDKをサポートする必要がある場合は、as式を使用しないようにコードを書き直すか、as式が定数コンテキストにないようにコードを変更してください。

dart
num x = 3;
int y = x as int;