Pular para o conteúdo principal

subtype_of_sealed_class

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

The class '{0}' shouldn't be extended, mixed in, or implemented because it's sealed.

Descrição

#

O analisador produz este diagnóstico quando uma classe selada (aquela que tem a anotação sealed ou herda ou mistura uma classe selada) é referenciada na cláusula extends, implements ou with de uma declaração de classe ou mixin, se a declaração não estiver no mesmo pacote da classe selada.

Exemplo

#

Dada uma biblioteca em um pacote diferente do pacote que está sendo analisado, que contém o seguinte:

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

O código a seguir produz este diagnóstico porque C, que não está no mesmo pacote de B, está estendendo a classe selada B:

dart
import 'package:a/a.dart';
​
class C extends B {}

Correções comuns

#

Se a classe não precisa ser um subtipo da classe selada, então altere a declaração para que ela não seja:

dart
import 'package:a/a.dart';
​
class B extends A {}

Se a classe precisa ser um subtipo da classe selada, então ou altere a classe selada para que ela não seja mais selada, ou mova a subclasse para o mesmo pacote da classe selada.

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