Pular para o conteúdo principal

mixin_class_declaration_extends_not_object

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

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

Descrição

#

O analisador emite este diagnóstico quando uma classe marcada com o modificador mixin estende uma classe diferente de Object. Uma classe mixin não pode ter uma superclasse diferente de Object.

Exemplo

#

O código a seguir gera este diagnóstico porque a classe B, que tem o modificador mixin, estende A:

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

Correções comuns

#

Se você quer que a classe seja usada como mixin, então altere a superclasse para Object, explicitamente ou removendo a cláusula extends:

dart
class A {}
​
mixin class B {}

Se a classe precisar ter uma superclasse diferente de Object, então remova o modificador mixin:

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

Se você precisar tanto de um mixin quanto de uma subclasse de uma classe diferente de Object, então mova os membros da subclasse para um novo mixin, remova o modificador mixin da subclasse e aplique o novo mixin à subclasse:

dart
class A {}
​
class B extends A with M {}
​
mixin M {}

Dependendo dos membros da subclasse, isso pode exigir adicionar uma cláusula on ao mixin.

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