Pular para o conteúdo principal

unnecessary_no_such_method

Detalhes sobre o diagnóstico 'unnecessary_no_such_method' produzido pelo analisador do Dart.

Unnecessary 'noSuchMethod' declaration.

Descrição

#

O analisador emite este diagnóstico quando há uma declaração de noSuchMethod, a única coisa que a declaração faz é invocar a declaração sobrescrita, e a declaração sobrescrita não é a declaração de Object.

Sobrescrever a implementação de noSuchMethod de Object (não importa o que a implementação faça) sinaliza ao analisador que ele não deve reportar métodos abstratos herdados que não são implementados nessa classe. Isso funciona mesmo se a implementação sobrescrita for herdada de uma superclasse, então não há valor em declará-la novamente em uma subclasse.

Exemplo

#

O código a seguir produz este diagnóstico porque a declaração de noSuchMethod em A torna desnecessária a declaração de noSuchMethod em B:

dart
class A {
  @override
  dynamic noSuchMethod(invocation) => super.noSuchMethod(invocation);
}
​
class B extends A {
  @override
  dynamic noSuchMethod(invocation) {
    return super.noSuchMethod(invocation);
  }
}

Correções comuns

#

Remova a declaração desnecessária:

dart
class A {
  @override
  dynamic noSuchMethod(invocation) => super.noSuchMethod(invocation);
}
​
class B extends A {}

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