const_constructor_with_non_const_super
常量构造函数不能调用“{0}”的非常量父类构造函数。
描述
#当标记为 const 的构造函数调用其父类中未标记为 const 的构造函数时,分析器会生成此诊断。
示例
#以下代码会产生此诊断,因为 B 中的 const 构造函数调用了类 A 中的 nonConst 构造函数,而父类构造函数不是 const 构造函数:
dart
class A {
const A();
A.nonConst();
}
class B extends A {
const B() : super.nonConst();
}常见修复
#如果当前调用的父类构造函数并非必需,则调用父类中的常量构造函数。
dart
class A {
const A();
A.nonConst();
}
class B extends A {
const B() : super();
}如果当前构造函数的调用是必需的,并且您可以修改它,则在父类中的构造函数前添加 const。
dart
class A {
const A();
const A.nonConst();
}
class B extends A {
const B() : super.nonConst();
}如果当前构造函数的调用是必需的,并且您无法修改它,则从子类中的构造函数前移除 const。
dart
class A {
const A();
A.nonConst();
}
class B extends A {
B() : super.nonConst();
}