Pular para o conteúdo principal

mixin_on_sealed_class

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

The class '{0}' shouldn't be used as a mixin constraint because it is sealed, and any class mixing in this mixin must have '{0}' as a superclass.

Descrição

#

O analisador emite este diagnóstico quando a restrição de superclasse de um mixin é uma classe de outro pacote que foi marcada como sealed. Classes sealed não podem ser estendidas, implementadas, misturadas (mixed in) ou usadas como restrição de superclasse.

Exemplo

#

Se o pacote p define uma classe sealed:

dart
import 'package:meta/meta.dart';
​
@sealed
class C {}

Então, o código a seguir, quando estiver em um pacote diferente de p, gera este diagnóstico:

dart
import 'package:p/p.dart';
​
mixin M on C {}

Correções comuns

#

Se as classes que usam o mixin não precisarem ser subclasses da classe sealed, então considere adicionar um campo e delegar para a instância encapsulada da classe sealed.

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