extension_override_without_access
扩展重载(extension override)只能用于访问实例成员。
描述
#当分析器发现扩展重载未使用来访问扩展的成员时,会产生此诊断。扩展重载语法没有运行时语义;它只控制在编译时选择哪个成员。
示例
#以下代码产生此诊断是因为 E(i)
不是一个表达式
dart
extension E on int {
int get a => 0;
}
void f(int i) {
print(E(i));
}
常见修复方法
#如果您想调用扩展的成员,请添加调用
dart
extension E on int {
int get a => 0;
}
void f(int i) {
print(E(i).a);
}
如果您不想调用成员,请解开(unwrap)参数
dart
extension E on int {
int get a => 0;
}
void f(int i) {
print(i);
}