unrelated_ type_ equality_ checks
Saiba mais sobre a regra de lint unrelated_type_equality_checks.
Invocação do operador de igualdade == com referências de tipos não relacionados.
Detalhes
#NÃO compare referências de tipos não relacionados quanto à igualdade.
Comparar referências de um tipo em que nenhum dos dois é subtipo do outro provavelmente retornará false
e pode não refletir a intenção do programador.
Int64 e Int32 de package:fixnum permitem comparar com int, desde que o
int esteja do lado direito. O lint permite isso como um caso especial.
RUIM:
void someFunction() {
var x = '1';
if (x == 1) print('someFunction'); // LINT
}
RUIM:
void someFunction1() {
String x = '1';
if (x == 1) print('someFunction1'); // LINT
}
RUIM:
void someFunction13(DerivedClass2 instance) {
var other = DerivedClass3();
if (other == instance) print('someFunction13'); // LINT
}
class ClassBase {}
class DerivedClass1 extends ClassBase {}
abstract class Mixin {}
class DerivedClass2 extends ClassBase with Mixin {}
class DerivedClass3 extends ClassBase implements Mixin {}
BOM:
void someFunction2() {
var x = '1';
var y = '2';
if (x == y) print(someFunction2); // OK
}
BOM:
void someFunction3() {
for (var i = 0; i < 10; i++) {
if (i == 0) print(someFunction3); // OK
}
}
BOM:
void someFunction4() {
var x = '1';
if (x == null) print(someFunction4); // OK
}
BOM:
void someFunction7() {
List someList;
if (someList.length == 0) print('someFunction7'); // OK
}
BOM:
void someFunction8(ClassBase instance) {
DerivedClass1 other;
if (other == instance) print('someFunction8'); // OK
}
BOM:
void someFunction10(unknown) {
var what = unknown - 1;
for (var index = 0; index < unknown; index++) {
if (what == index) print('someFunction10'); // OK
}
}
BOM:
void someFunction11(Mixin instance) {
var other = DerivedClass2();
if (other == instance) print('someFunction11'); // OK
if (other != instance) print('!someFunction11'); // OK
}
class ClassBase {}
abstract class Mixin {}
class DerivedClass2 extends ClassBase with Mixin {}
Ativar
#
Para ativar a regra unrelated_type_equality_checks, adicione unrelated_type_equality_checks
em
linter > rules no seu arquivo analysis_options.yaml:
linter:
rules:
- unrelated_type_equality_checks
Se você usa a sintaxe de mapa YAML para configurar as regras de lint,
adicione unrelated_type_equality_checks: true em linter > rules:
linter:
rules:
unrelated_type_equality_checks: true
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ê.