invariant_ booleans
Saiba mais sobre a regra de lint invariant_booleans.
As condições não devem avaliar incondicionalmente para true ou para false.
Detalhes
#NOTA: Esta regra foi removida no Dart 3.0.0; ela não funciona mais.
NÃO FAÇA teste condições que podem ser inferidas em tempo de compilação, nem teste a mesma condição duas vezes.
Instruções condicionais que usam uma condição que não pode ser outra coisa além de false
tornam blocos de código não funcionais. Se a condição não puder ser avaliada como outra coisa além de
true, a instrução condicional é completamente redundante e deixa o código menos legível. É bem provável que o código não corresponda à intenção do programador. Ou a condição deve ser removida, ou deve ser atualizada para não avaliar sempre como
true ou false e para não executar testes redundantes. Esta regra indicará o teste que conflita com o que foi sinalizado.
RUIM:
// foo can't be both equal and not equal to bar in the same expression
if(foo == bar && something && foo != bar) {...}
RUIM:
void compute(int foo) {
if (foo == 4) {
doSomething();
// we know foo is equal to 4 at this point, so the next condition is always false
if (foo > 4) {...}
...
}
...
}
RUIM:
void compute(bool foo) {
if (foo) {
return;
}
doSomething();
// foo is always false here
if (foo){...}
...
}
BOM:
void nestedOK() {
if (foo == bar) {
foo = baz;
if (foo != bar) {...}
}
}
BOM:
void nestedOk2() {
if (foo == bar) {
return;
}
foo = baz;
if (foo == bar) {...} // OK
}
BOM:
void nestedOk5() {
if (foo != null) {
if (bar != null) {
return;
}
}
if (bar != null) {...} // OK
}
Ativar
#
Para ativar a regra invariant_booleans, adicione invariant_booleans em
linter > rules no seu arquivo analysis_options.yaml:
linter:
rules:
- invariant_booleans
Se você usa a sintaxe de mapa YAML para configurar as regras de lint,
adicione invariant_booleans: true em linter > rules:
linter:
rules:
invariant_booleans: 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ê.