super_formal_parameter_without_associated_positional
対応する位置指定されたスーパーコンストラクタパラメータがありません。
説明
#コンストラクタに位置指定されたスーパーパラメータがあり、暗黙的または明示的に呼び出されるスーパーコンストラクタに対応するインデックスに位置指定されたパラメータがない場合に、アナライザはこの診断を生成します。
位置指定されたスーパーパラメータは、インデックスによってスーパーコンストラクタの位置指定されたパラメータに関連付けられます。つまり、最初のスーパーパラメータはスーパーコンストラクタの最初 の位置指定されたパラメータに関連付けられ、2番目は2番目などとなります。
例
#次のコードは、B のコンストラクタには位置指定されたスーパーパラメータがありますが、A のスーパーコンストラクタには位置指定されたパラメータがないため、この診断を生成します。
dart
class A {
A({int? x});
}
class B extends A {
B(super.x);
}次のコードは、B のコンストラクタには2つの位置指定されたスーパーパラメータがありますが、A のスーパーコンストラクタには位置指定されたパラメータが1つしかないため、y に対応するパラメータがないため、この診断を生成します。
dart
class A {
A(int x);
}
class B extends A {
B(super.x, super.y);
}一般的な修正
#スーパーコンストラクタにスーパーパラメータに対応する位置指定されたパラメータがあるはずの場合は、スーパーコンストラクタを適切に更新してください。
dart
class A {
A(int x, int y);
}
class B extends A {
B(super.x, super.y);
}スーパーコンストラクタが正しい場合、または変更できない場合は、スーパーパラメータを通常のパラメータに変換してください。
dart
class A {
A(int x);
}
class B extends A {
B(super.x, int y);
}