跳到主要内容

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 {}