mixin_on_sealed_class
类 '{0}' 不应被用作 mixin 约束,因为它是一个 sealed 类,并且任何混入此 mixin 的类都必须将 '{0}' 作为超类。
描述
#当 mixin 的超类约束是来自不同包中被标记为 sealed
的类时,分析器会产生此诊断。Sealed 类不能被扩展、实现、混入或用作超类约束。
示例
#如果包 p
定义了一个 sealed 类
dart
import 'package:meta/meta.dart';
@sealed
class C {}
那么,当在除了 p
以外的包中时,以下代码会产生此诊断
dart
import 'package:p/p.dart';
mixin M on C {}
常见修复
#如果使用该 mixin 的类不需要是 sealed 类的子类,那么考虑添加一个字段并委托给 sealed 类的包装实例。