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