undefined_extension_setter
セッター '{0}' は拡張機能 '{1}' で定義されていません。
説明
#拡張機能のオーバーライドを使用してセッターを呼び出そうとしたが、指定された拡張機能にセッターが定義されていない場合に、アナライザーはこの診断を生成します。また、静的セッターを参照したが、指定された拡張機能に定義されていない場合にも、アナライザーはこの診断を生成します。
例
#以下のコードは、拡張機能 E が b という名前のインスタンスセッターを宣言していないため、この診断を生成します。
dart
extension E on String {
set a(String v) {}
}
extension F on String {
set b(String v) {}
}
void f() {
E('c').b = 'd';
}以下のコードは、拡張機能 E が a という名前の静的セッターを宣言していないため、この診断を生成します。
dart
extension E on String {}
void f() {
E.a = 3;
}一般的な修正
#セッターの名前が間違っている場合は、既存のセッターの名前に変更してください。
dart
extension E on String {
set a(String v) {}
}
extension F on String {
set b(String v) {}
}
void f() {
E('c').a = 'd';
}セッターの名前が正しいが、拡張機能の名前が間違っている場合は、拡張機能の名前を正しい名前に変更してください。
dart
extension E on String {
set a(String v) {}
}
extension F on String {
set b(String v) {}
}
void f() {
F('c').b = 'd';
}セッターと拡張機能の名前が両方とも正しいが、セッターが定義されていない場合は、セッターを定義してください。
dart
extension E on String {
set a(String v) {}
set b(String v) {}
}
extension F on String {
set b(String v) {}
}
void f() {
E('c').b = 'd';
}