Pular para o conteúdo principal

unnecessary_overrides

Saiba mais sobre a regra de lint unnecessary_overrides.

Estável
Core
Correção disponível

Não sobrescreva um método apenas para chamar o método da superclasse com os mesmos parâmetros.

Detalhes

#

NÃO sobrescreva um método apenas para fazer uma invocação de super com os mesmos parâmetros.

RUIM:

dart
class A extends B {
  @override
  void foo() {
    super.foo();
  }
}

BOM:

dart
class A extends B {
  @override
  void foo() {
    doSomethingElse();
  }
}

É válido sobrescrever um membro nos seguintes casos:

  • se algum tipo (tipo de retorno ou tipo de um parâmetro) não for exatamente igual ao do membro da superclasse,
  • se a palavra-chave covariant for adicionada a um dos parâmetros,
  • se comentários de documentação estiverem presentes no membro,
  • se o membro tiver anotações diferentes de @override,
  • se o membro não estiver anotado com @protected e o membro da superclasse estiver.

noSuchMethod é um método especial e não é verificado por esta regra.

Ativar

#

Para ativar a regra unnecessary_overrides, adicione unnecessary_overrides em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_overrides

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione unnecessary_overrides: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    unnecessary_overrides: 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ê.