Pular para o conteúdo principal

sdk_version_gt_gt_gt_operator

Detalhes sobre o diagnóstico 'sdk_version_gt_gt_gt_operator' produzido pelo analisador do Dart.

The operator '>>>' wasn't supported until version 2.14.0, but this code is required to be able to run on earlier versions.

Descrição

#

O analisador emite este diagnóstico quando o operador >>> é usado em código que tem uma restrição de SDK cujo limite inferior é menor que 2.14.0. Esse operador não era suportado em versões anteriores, então esse código não conseguirá rodar nas versões anteriores do SDK.

Exemplo

#

Aqui está um exemplo de um pubspec que define uma restrição de SDK com limite inferior menor que 2.14.0:

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

No pacote que tem esse pubspec, um código como o seguinte gera este diagnóstico:

dart
int x = 3 >>> 4;

Correções comuns

#

Se você não precisa oferecer suporte a versões mais antigas do SDK, pode aumentar a restrição de SDK para permitir o uso do operador:

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

Se você precisa oferecer suporte a versões mais antigas do SDK, reescreva o código para não usar o operador >>>:

dart
int x = logicalShiftRight(3, 4);
​
int logicalShiftRight(int leftOperand, int rightOperand) {
  int divisor = 1 << rightOperand;
  if (divisor == 0) {
    return 0;
  }
  return leftOperand ~/ divisor;
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.