Pular para o conteúdo principal

sdk_version_bool_operator_in_const_context

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

The use of the operator '{0}' for 'bool' operands in a constant context wasn't supported until version 2.3.2, but this code is required to be able to run on earlier versions.

Descrição

#

O analisador emite este diagnóstico quando qualquer uso dos operadores &, | ou ^ sobre a classe bool dentro de um contexto constanteConstant contextUma região do código em que a keyword const está implícita e tudo dentro dessa região precisa ser constante. Saiba mais é encontrado em código que tem uma restrição de SDK cujo limite inferior é menor que 2.3.2. O uso desses operadores em um contexto constanteConstant contextUma região do código em que a keyword const está implícita e tudo dentro dessa região precisa ser constante. Saiba mais 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.3.2:

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

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

dart
const bool a = true;
const bool b = false;
const bool c = a & b;

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 dos operadores:

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

Se você precisa oferecer suporte a versões mais antigas do SDK, reescreva o código para não usar esses operadores, ou altere o código para que a expressão não esteja em um contexto constanteConstant contextUma região do código em que a keyword const está implícita e tudo dentro dessa região precisa ser constante. Saiba mais:

dart
const bool a = true;
const bool b = false;
bool c = a & b;

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ê.