Pular para o conteúdo principal

const_constructor_with_non_const_super

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

A constant constructor can't call a non-constant super constructor of '{0}'.

Descrição

#

O analisador emite este diagnóstico quando um construtor marcado como const invoca um construtor da sua superclasse que não está marcado como const.

Exemplo

#

O código a seguir produz este diagnóstico porque o construtor const em B invoca o construtor nonConst da classe A, e o construtor da superclasse não é um construtor const:

dart
class A {
  const A();
  A.nonConst();
}
​
class B extends A {
  const B() : super.nonConst();
}

Correções comuns

#

Se não for essencial invocar o construtor da superclasse que está sendo invocado atualmente, invoque um construtor constante da superclasse:

dart
class A {
  const A();
  A.nonConst();
}
​
class B extends A {
  const B() : super();
}

Se for essencial que o construtor atual seja invocado e você puder modificá-lo, adicione const ao construtor da superclasse:

dart
class A {
  const A();
  const A.nonConst();
}
​
class B extends A {
  const B() : super.nonConst();
}

Se for essencial que o construtor atual seja invocado e você não puder modificá-lo, remova const do construtor da subclasse:

dart
class A {
  const A();
  A.nonConst();
}
​
class B extends A {
  B() : super.nonConst();
}

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