跳到主要内容

redirect_to_non_const_constructor

常量重定向构造函数不能重定向到非常量构造函数。

描述

#

当一个标记为 const 的构造函数重定向到未标记为 const 的构造函数时,分析器会产生此诊断。

示例

#

以下代码会产生此诊断,因为构造函数 C.a 被标记为 const,但重定向到构造函数 C.b,而 C.b 不是常量构造函数

dart
class C {
  const C.a() : this.b();
  C.b();
}

常见解决方法

#

如果该非常量构造函数可以被标记为 const,则将其标记为 const

dart
class C {
  const C.a() : this.b();
  const C.b();
}

如果该非常量构造函数不能被标记为 const,则或者移除重定向,或者从重定向构造函数中移除 const

dart
class C {
  C.a() : this.b();
  C.b();
}