Pular para o conteúdo principal

super_formal_parameter_without_associated_positional

Detalhes sobre o diagnóstico 'super_formal_parameter_without_associated_positional' produzido pelo analisador do Dart.

No associated positional super constructor parameter.

Descrição

#

O analisador produz este diagnóstico quando há um parâmetro super posicional em um construtor e o construtor da superclasse invocado implícita ou explicitamente não tem um parâmetro posicional na posição correspondente.

Parâmetros super posicionais são associados aos parâmetros posicionais do construtor da superclasse pelo índice. Ou seja, o primeiro parâmetro super é associado ao primeiro parâmetro posicional do construtor da superclasse, o segundo ao segundo, e assim por diante.

Exemplos

#

O código a seguir produz este diagnóstico porque o construtor em B tem um parâmetro super posicional, mas não há um parâmetro posicional no construtor da superclasse em A:

dart
class A {
  A({int? x});
}
​
class B extends A {
  B(super.x);
}

O código a seguir produz este diagnóstico porque o construtor em B tem dois parâmetros super posicionais, mas há apenas um parâmetro posicional no construtor da superclasse em A, o que significa que não há um parâmetro correspondente para y:

dart
class A {
  A(int x);
}
​
class B extends A {
  B(super.x, super.y);
}

Correções comuns

#

Se o construtor da superclasse deve ter um parâmetro posicional correspondente ao parâmetro super, então atualize o construtor da superclasse de forma apropriada:

dart
class A {
  A(int x, int y);
}
​
class B extends A {
  B(super.x, super.y);
}

Se o construtor da superclasse está correto, ou não pode ser alterado, então converta o parâmetro super em um parâmetro normal:

dart
class A {
  A(int x);
}
​
class B extends A {
  B(super.x, int y);
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.