Pular para o conteúdo principal

invocation_of_extension_without_call

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

The extension '{0}' doesn't define a 'call' method so the override can't be used in an invocation.

Descrição

#

O analisador gera este diagnóstico quando uma extensão explícita (extension override) é usada para invocar uma função, mas a extensão não declara um método call.

Exemplo

#

O código a seguir gera este diagnóstico porque a extensão E não define um método call:

dart
extension E on String {}
​
void f() {
  E('')();
}

Correções comuns

#

Se a extensão deve definir um método call, então declare-o:

dart
extension E on String {
  int call() => 0;
}
​
void f() {
  E('')();
}

Se o tipo estendido define um método call, então remova a extensão explícita (extension override).

Se o método call não estiver definido, então reescreva o código para que ele não invoque o método call.

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