跳到主要內容

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 類的包裝例項。