Pular para o conteúdo principal

invalid_super_formal_parameter_location

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

Super parameters can only be used in non-redirecting generative constructors.

Descrição

#

O analisador gera este diagnóstico quando um parâmetro super é usado em qualquer lugar que não seja um construtor generativo não redirecionador.

Exemplos

#

O código a seguir gera este diagnóstico porque o parâmetro super x está em um construtor generativo redirecionador:

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

O código a seguir gera este diagnóstico porque o parâmetro super x não está em um construtor generativo:

dart
class A {
  A(int x);
}
​
class C extends A {
  factory C.c(super.x) => C._();
  C._() : super(0);
}

O código a seguir gera este diagnóstico porque o parâmetro super x está em um método:

dart
class A {
  A(int x);
}
​
class D extends A {
  D() : super(0);
​
  void m(super.x) {}
}

Correções comuns

#

Se a função que contém o parâmetro super pode ser alterada para ser um construtor generativo não redirecionador, então faça essa alteração:

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

Se a função que contém o parâmetro super não pode ser alterada para ser um construtor generativo não redirecionador, então remova o super:

dart
class A {
  A(int x);
}
​
class D extends A {
  D() : super(0);
​
  void m(int x) {}
}

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