implicit_ super_ initializer_ missing_ arguments
Detalhes sobre o diagnóstico 'implicit_super_initializer_missing_arguments' produzido pelo analisador do Dart.
The implicitly invoked unnamed constructor from '{0}' has required parameters.
Descrição
#
O analisador produz este diagnóstico quando um construtor invoca implicitamente
o construtor sem nome da superclasse, o construtor sem nome da superclasse tem
um parâmetro obrigatório, e não há um parâmetro super correspondente ao
parâmetro obrigatório.
Exemplos
#
O código a seguir produz este diagnóstico porque o construtor sem nome
da classe B invoca implicitamente o construtor sem nome da classe A, mas o
construtor de A tem um parâmetro posicional obrigatório chamado x:
class A {
A(int x);
}
class B extends A {
B();
}
O código a seguir produz este diagnóstico porque o construtor sem nome
da classe B invoca implicitamente o construtor sem nome da classe A, mas o
construtor de A tem um parâmetro nomeado obrigatório chamado x:
class A {
A({required int x});
}
class B extends A {
B();
}
Correções comuns
#
Se você puder adicionar um parâmetro ao construtor da subclasse, adicione um
parâmetro super correspondente ao parâmetro obrigatório do construtor da
superclasse. O novo parâmetro pode ser obrigatório:
class A {
A({required int x});
}
class B extends A {
B({required super.x});
}
ou pode ser opcional:
class A {
A({required int x});
}
class B extends A {
B({super.x = 0});
}
Se você não puder adicionar um parâmetro ao construtor da subclasse, adicione uma invocação explícita do construtor da superclasse com o argumento obrigatório:
class A {
A(int x);
}
class B extends A {
B() : super(0);
}
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ê.