Pular para o conteúdo principal

undefined_super_member_read

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

The member '{0}' is declared in '{1}', but private names are visible only in their own library.

The member '{0}' isn't defined in a superclass of '{1}'.

There's a setter '{0}' in a superclass of '{1}', but no getter.

Descrição

#

O analisador emite este diagnóstico quando um membro é lido, invocado ou extraído (tear-off) usando super, mas nenhuma superclasse da declaração envolvente possui um método, getter ou campo com esse nome.

Exemplos

#

O código a seguir produz este diagnóstico porque a superclasse A não define um membro chamado bar:

dart
class A {
  void foo() {}
}
​
class B extends A {
  void m() {
    super.bar();
  }
}

O código a seguir produz este diagnóstico porque a superclasse A define apenas um setter chamado foo, que não pode ser lido:

dart
class A {
  set foo(int _) {}
}
​
class B extends A {
  int m() => super.foo;
}

Correções comuns

#

Se o membro herdado que você pretende usar tiver outro nome, faça o nome corresponder ao do membro herdado:

dart
class A {
  void foo() {}
}
​
class B extends A {
  void m() {
    super.foo();
  }
}

Se o membro não estiver definido, adicione-o a uma superclasse:

dart
class A {
  void foo() {}
​
  void bar() {}
}
​
class B extends A {
  void m() {
    super.bar();
  }
}

Se uma superclasse definir apenas um setter, adicione um getter com o mesmo nome:

dart
class A {
  int get foo => 0;
​
  set foo(int _) {}
}
​
class B extends A {
  int m() => super.foo;
}

Caso contrário, remova a referência.

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