positional_ super_ formal_ parameter_ with_ positional_ argument
Detalhes sobre o diagnóstico 'positional_super_formal_parameter_with_positional_argument' produzido pelo analisador do Dart.
Positional super parameters can't be used when the super constructor invocation has a positional argument.
Descrição
#O analisador emite este diagnóstico quando alguns, mas não todos, os parâmetros posicionais fornecidos ao construtor da superclasse usam um parâmetro super.
Parâmetros super posicionais são associados aos parâmetros posicionais do construtor da superclasse pelo seu í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. O mesmo vale para os argumentos posicionais. Ter parâmetros super posicionais e argumentos posicionais ao mesmo tempo significa que há dois valores associados ao mesmo parâmetro do construtor da superclasse, e por isso não é permitido.
Exemplo
#
O código a seguir produz este diagnóstico porque o construtor B.new usa um
parâmetro super para passar um dos parâmetros posicionais obrigatórios ao
construtor da superclasse em A, mas passa explicitamente o outro na invocação
do construtor da superclasse:
class A {
A(int x, int y);
}
class B extends A {
B(int x, super.y) : super(x);
}
Correções comuns
#Se todos os parâmetros posicionais puderem ser parâmetros super, então converta os parâmetros posicionais normais em parâmetros super:
class A {
A(int x, int y);
}
class B extends A {
B(super.x, super.y);
}
Se alguns parâmetros posicionais não puderem ser parâmetros super, então converta os parâmetros super em parâmetros normais:
class A {
A(int x, int y);
}
class B extends A {
B(int x, int y) : super(x + 1, y);
}
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.