跳到主要內容

mixin_application_no_concrete_super_invoked_member

該類沒有超類呼叫成員“{0}”的具體實現。

該類沒有超類呼叫 setter “{0}”的具體實現。

描述

#

混入應用包含對其超類成員的呼叫,並且該混入應用的超類中沒有該名稱的具體成員時,分析器會生成此診斷。

示例

#

以下程式碼會產生此診斷,因為混入 M 包含呼叫 super.m(),而類 A 作為混入應用 A+M 的超類,沒有定義 m 的具體實現。

dart
abstract class A {
  void m();
}

mixin M on A {
  void bar() {
    super.m();
  }
}

abstract class B extends A with M {}

常見修復

#

如果您打算將混入 M 應用於具有 m 具體實現的另一個類,請將 B 的超類更改為該類。

dart
abstract class A {
  void m();
}

mixin M on A {
  void bar() {
    super.m();
  }
}

class C implements A {
  void m() {}
}

abstract class B extends C with M {}

如果您需要讓 B 成為 A 的子類,則在 A 中新增 m 的具體實現。

dart
abstract class A {
  void m() {}
}

mixin M on A {
  void bar() {
    super.m();
  }
}

abstract class B extends A with M {}