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

extension_override_without_access

拡張機能のオーバーライドは、インスタンスメンバーにアクセスするためにのみ使用できます。

説明

#

この診断は、拡張機能のメンバーのいずれかにアクセスするために使用されていない拡張機能のオーバーライドが見つかった場合にアナライザーによって生成されます。拡張機能のオーバーライド構文には実行時の意味論はありません。コンパイル時に選択されるメンバーを制御するだけです。

#

次のコードは、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);
}

メンバーを呼び出したくない場合は、引数をアンラップします。

dart
extension E on int {
  int get a => 0;
}

void f(int i) {
  print(i);
}