Pular para o conteúdo principal

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:

dart
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:

dart
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:

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

ou pode ser opcional:

dart
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:

dart
class A {
  A(int x);
}
​
class B extends A {
  B() : super(0);
}

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ê.