Pular para o conteúdo principal

mixin_inherits_from_not_object

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

The class '{0}' can't be used as a mixin because it extends a class other than 'Object'.

Descrição

#

O analisador emite este diagnóstico quando uma classe que estende uma classe diferente de Object é usada como mixin.

Exemplo

#

O código a seguir gera este diagnóstico porque a classe B, que estende A, está sendo usada como mixin por C:

dart
//@dart=2.19
class A {}
​
class B extends A {}
​
class C with B {}

Correções comuns

#

Se a classe usada como mixin puder ser alterada para estender Object, então altere-a:

dart
//@dart=2.19
class A {}
​
class B {}
​
class C with B {}

Se a classe usada como mixin não puder ser alterada e a classe que a usa estender Object, então estenda a classe usada como mixin:

dart
class A {}
​
class B extends A {}
​
class C extends B {}

Se a classe não estender Object, ou se você quiser poder misturar o comportamento de B em outros lugares, então crie um mixin de verdade:

dart
class A {}
​
mixin M on A {}
​
class B extends A with M {}
​
class C 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ê.