跳到主内容

extension_override_with_cascade

扩展重载没有值,因此不能用作级联表达式的接收者。

描述

#

当扩展重载用作级联表达式的接收者时,分析器会产生此诊断。级联表达式 e..m 的值是接收者 e 的值,但扩展重载不是表达式并且没有值。

示例

#

以下代码产生此诊断,因为 E(3) 不是表达式

dart
extension E on int {
  void m() {}
}
f() {
  E(3)..m();
}

常见修复方法

#

使用 . 而非 ..

dart
extension E on int {
  void m() {}
}
f() {
  E(3).m();
}

如果有多个级联访问,您需要为每个访问复制扩展重载。