Pular para o conteúdo principal

non_constant_default_value_from_deferred_library

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

Constant values from a deferred library can't be used as a default parameter value.

Descrição

#

O analisador emite este diagnóstico quando o valor padrão de um parâmetro opcional usa uma constante de uma biblioteca importada com um import deferred. Valores padrão precisam estar disponíveis em tempo de compilação, e constantes de bibliotecas deferred não estão disponíveis em tempo de compilação.

Para mais informações, veja carregamento preguiçoso de uma biblioteca.

Exemplo

#

Dado um arquivo a.dart que define a constante zero:

dart
const zero = 0;

O código a seguir gera este diagnóstico porque zero é declarada em uma biblioteca importada com um import deferred:

dart
import 'a.dart' deferred as a;
​
void f({int x = a.zero}) {}

Correções comuns

#

Se você precisar referenciar a constante da biblioteca importada, então remova a palavra-chave deferred:

dart
import 'a.dart' as a;
​
void f({int x = a.zero}) {}

Se você não precisar referenciar a constante, então substitua o valor padrão:

dart
void f({int x = 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ê.