Pular para o conteúdo principal

invariant_booleans

Saiba mais sobre a regra de lint invariant_booleans.

Removido

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:

dart
// foo can't be both equal and not equal to bar in the same expression
if(foo == bar && something && foo != bar) {...}

RUIM:

dart
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:

dart
void compute(bool foo) {
  if (foo) {
    return;
  }
  doSomething();
  // foo is always false here
  if (foo){...}
  ...
}

BOM:

dart
void nestedOK() {
  if (foo == bar) {
    foo = baz;
    if (foo != bar) {...}
  }
}

BOM:

dart
void nestedOk2() {
  if (foo == bar) {
    return;
  }
​
  foo = baz;
  if (foo == bar) {...} // OK
}

BOM:

dart
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:

analysis_options.yaml
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:

analysis_options.yaml
yaml
linter:
  rules:
    invariant_booleans: true

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