跳到主要内容

super_invocation_not_last

(之前称为 invalid_super_invocation)

super 构造函数调用必须是初始化列表中的最后一项:'{0}'。

描述

#

当构造函数的初始化列表中包含对超类(superclass)构造函数的调用,但该调用不是初始化列表中的最后一项时,分析器会生成此诊断。

示例

#

以下代码会产生此诊断,因为超类(superclass)构造函数的调用不是初始化列表中的最后一项

dart
class A {
  A(int x);
}

class B extends A {
  B(int x) : super(x), assert(x >= 0);
}

常见修复方法

#

将超类(superclass)构造函数的调用移至初始化列表的末尾

dart
class A {
  A(int x);
}

class B extends A {
  B(int x) : assert(x >= 0), super(x);
}