sdk_version_bool_operator_in_const_context
Dart 2.3.2 より前のバージョンでは、定数コンテキストでの「bool」オペランドに対する演算子「{0}」の使用はサポートされていませんでしたが、このコードは以前のバージョンでも実行できる必要があります。
説明
#アナライザーは、SDK 制約の下限が 2.3.2 未満であるコードで、定数コンテキスト内のクラス bool に対して &、|、または ^ 演算子が使用されている場合に、この診断を生成します。これらの演算子を定数コンテキストで使用することは、以前のバージョンではサポートされていなかったため、このコードは SDK の以前のバージョンでは実行できません。
例
#2.3.2未満の低位境界を持つSDK制約を定義する`pubspec.yaml`の例を次に示します。
yaml
environment:
sdk: '>=2.1.0 <2.4.0'その`pubspec.yaml`を持つパッケージでは、次のようなコードがこの診断を生成します。
dart
const bool a = true;
const bool b = false;
const bool c = a & b;一般的な修正
#古い SDK バージョンのサポートが必要ない場合は、SDK 制約を増やして演算子を使用できるようにすることができます。
yaml
environment:
sdk: '>=2.3.2 <2.4.0'古い SDK バージョンのサポートが必要な場合は、これらの演算子を使用しないようにコードを書き直すか、式が定数コンテキストにならないようにコードを変更してください。
dart
const bool a = true;
const bool b = false;
bool c = a & b;