Pular para o conteúdo principal

mixin_application_no_concrete_super_invoked_member

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

The class doesn't have a concrete implementation of the super-invoked member '{0}'.

The class doesn't have a concrete implementation of the super-invoked setter '{0}'.

Descrição

#

O analisador emite este diagnóstico quando uma aplicação de mixinMixin applicationUma classe criada quando um mixin é aplicado a uma classe. Saiba mais contém uma invocação de um membro da sua superclasse, e não existe um membro concreto com esse nome na superclasse da aplicação de mixin.

Exemplo

#

O código a seguir gera este diagnóstico porque o mixin M contém a invocação super.m(), e a classe A, que é a superclasse da aplicação de mixinMixin applicationUma classe criada quando um mixin é aplicado a uma classe. Saiba mais A+M, não define uma implementação concreta de m:

dart
abstract class A {
  void m();
}
​
mixin M on A {
  void bar() {
    super.m();
  }
}
​
abstract class B extends A with M {}

Correções comuns

#

Se você pretendia aplicar o mixin M a outra classe, uma que tenha uma implementação concreta de m, então altere a superclasse de B para essa classe:

dart
abstract class A {
  void m();
}
​
mixin M on A {
  void bar() {
    super.m();
  }
}
​
class C implements A {
  @override
  void m() {}
}
​
abstract class B extends C with M {}

Se você precisar fazer de B uma subclasse de A, então adicione uma implementação concreta de m em A:

dart
abstract class A {
  void m() {}
}
​
mixin M on A {
  void bar() {
    super.m();
  }
}
​
abstract class B extends A with M {}

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