Pular para o conteúdo principal

extension_override_without_access

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

An extension override can only be used to access instance members.

Descrição

#

O analisador produz este diagnóstico quando é encontrado um override de extensão que não está sendo usado para acessar um dos membros da extensão. A sintaxe de override de extensão não tem semântica em tempo de execução; ela apenas controla qual membro é selecionado em tempo de compilação.

Exemplo

#

O código a seguir produz este diagnóstico porque E(i) não é uma expressão:

dart
extension E on int {
  int get a => 0;
}
​
void f(int i) {
  print(E(i));
}

Correções comuns

#

Se você quiser invocar um dos membros da extensão, adicione a invocação:

dart
extension E on int {
  int get a => 0;
}
​
void f(int i) {
  print(E(i).a);
}

Se você não quiser invocar um membro, desembrulhe o argumento:

dart
extension E on int {
  int get a => 0;
}
​
void f(int i) {
  print(i);
}

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