sdk_ version_ eq_ eq_ operator_ in_ const_ context
Detalhes sobre o diagnóstico 'sdk_version_eq_eq_operator_in_const_context' produzido pelo analisador do Dart.
Using the operator '==' for non-primitive types 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 o operador == é usado em um tipo não primitivo 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
e é encontrado em código que tem uma restrição de SDK cujo limite inferior é menor que 2.3.2. O uso desse operador 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:
environment:
sdk: '>=2.1.0 <2.4.0'
No pacote que tem esse pubspec, um código como o seguinte gera este diagnóstico:
class C {}
const C a = null;
const C b = null;
const bool same = 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 do operador:
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 o operador
==, 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:
class C {}
const C a = null;
const C b = null;
bool same = a == b;
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.