Pular para o conteúdo principal

invalid_annotation_constant_value_from_deferred_library

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

Constant values from a deferred library can't be used in annotations.

Descrição

#

O analisador produz este diagnóstico quando uma constante definida em uma biblioteca importada como biblioteca adiada (deferred) é referenciada na lista de argumentos de uma anotação. Anotações são avaliadas em tempo de compilação, e valores de bibliotecas adiadas não estão disponíveis em tempo de compilação.

Para mais informações, veja Carregando uma biblioteca sob demanda.

Exemplo

#

O código a seguir produz este diagnóstico porque a constante pi está sendo referenciada na lista de argumentos de uma anotação, embora a biblioteca que a define esteja sendo importada como biblioteca adiada:

dart
import 'dart:math' deferred as math;
​
class C {
  const C(double d);
}
​
@C(math.pi)
void f() {}

Correções comuns

#

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

dart
import 'dart:math' as math;
​
class C {
  const C(double d);
}
​
@C(math.pi)
void f() {}

Se a importação precisar ser adiada e houver outra constante adequada, então use essa constante no lugar da constante da biblioteca adiada.

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