unrelated_ type_ equality_ checks
Detalhes sobre o diagnóstico 'unrelated_type_equality_checks' produzido pelo analisador do Dart.
The type of the operand ('{0}') isn't a subtype or a supertype of the value being matched ('{1}').
The type of the right operand ('{0}') isn't a subtype or a supertype of the left operand ('{1}').
Descrição
#O analisador gera este diagnóstico quando dois objetos estão sendo comparados e nenhum dos tipos estáticos dos dois objetos é subtipo do outro.
Essa comparação normalmente retorna false e pode não refletir a intenção do
programador.
Pode haver falsos positivos. Por exemplo, uma classe chamada Point pode ter as
subclasses CartesianPoint e PolarPoint, nenhuma delas subtipo da outra, mas
ainda assim pode ser apropriado testar a igualdade das instâncias.
Como caso concreto, as classes Int64 e Int32 de package:fixnum
permitem
comparar instâncias com um int, desde que o int esteja do lado direito. Esse
caso é permitido especificamente pelo diagnóstico, mas outros casos desse tipo
não são.
Exemplo
#
O código a seguir gera este diagnóstico porque a string s está sendo comparada
com o inteiro 1:
bool f(String s) {
return s == 1;
}
Correções comuns
#Substitua um dos operandos por algo compatível com o outro operando:
bool f(String s) {
return s.length == 1;
}
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ê.