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

sdk_version_gt_gt_gt_operator

演算子 '>>>' はバージョン 2.14.0 までサポートされていませんでしたが、このコードはそれ以前のバージョンでも実行できるようにする必要があります。

説明

#

アナライザーは、SDK 制約の下限が 2.14.0 未満のコードで演算子 >>> が使用されている場合に、この診断を生成します。この演算子は以前のバージョンではサポートされていなかったため、このコードは SDK の以前のバージョンでは実行できません。

#

以下は、2.14.0 未満の下限を持つ SDK 制約を定義する pubspec の例です。

yaml
environment:
 sdk: '>=2.0.0 <2.15.0'

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

dart
int x = 3 >>> 4;

一般的な修正

#

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

yaml
environment:
  sdk: '>=2.14.0 <2.15.0'

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

dart
int x = logicalShiftRight(3, 4);

int logicalShiftRight(int leftOperand, int rightOperand) {
  int divisor = 1 << rightOperand;
  if (divisor == 0) {
    return 0;
  }
  return leftOperand ~/ divisor;
}