メインコンテンツにスキップ

invocation_of_extension_without_call

拡張機能 '{0}' は 'call' メソッドを定義していないため、オーバーライドを呼び出しに使用することはできません。

説明

#

関数を呼び出すために拡張機能のオーバーライドが使用されていますが、拡張機能が call メソッドを宣言していない場合に、アナライザーはこの診断を生成します。

#

以下のコードは、拡張機能 Ecall メソッドを定義していないため、この診断を生成します。

dart
extension E on String {}

void f() {
  E('')();
}

一般的な修正

#

拡張機能で call メソッドを定義する意図がある場合は、それを宣言してください。

dart
extension E on String {
  int call() => 0;
}

void f() {
  E('')();
}

拡張された型が call メソッドを定義している場合は、拡張機能のオーバーライドを削除してください。

call メソッドが定義されていない場合は、call メソッドを呼び出さないようにコードを書き直してください。