collection_ element_ from_ deferred_ library
Detalhes sobre o diagnóstico 'collection_element_from_deferred_library' produzido pelo analisador do Dart.
Constant values from a deferred library can't be used as keys in a 'const' map literal.
Constant values from a deferred library can't be used as values in a 'const' constructor.
Constant values from a deferred library can't be used as values in a 'const' list literal.
Constant values from a deferred library can't be used as values in a 'const' map literal.
Constant values from a deferred library can't be used as values in a 'const' set literal.
Descrição
#
O analisador emite este diagnóstico quando um literal de coleção que é uma constante, seja explicitamente (por ser precedido pela palavra-chave
const), seja implicitamente (por aparecer em um contexto constanteConstant contextUma região do código em que a keyword const está implícita e
tudo dentro dessa região precisa ser constante. Saiba mais), contém um valor declarado em uma biblioteca importada com um import adiado (deferred). Constantes são avaliadas em tempo de compilação, e os valores de bibliotecas adiadas não estão disponíveis em tempo de compilação.
Para mais informações, consulte Carregando uma biblioteca sob demanda.
Exemplo
#Dado um arquivo a.dart que define a constante zero:
const zero = 0;
O código a seguir produz este diagnóstico porque o literal de lista constante contém a.zero, que é importado usando um import
deferred:
import 'a.dart' deferred as a;
var l = const [a.zero];
Correções comuns
#Se o literal de coleção não precisar ser constante, remova a palavra-chave const:
import 'a.dart' deferred as a;
var l = [a.zero];
Se a coleção precisar ser constante e a constante importada precisar ser referenciada, remova a palavra-chave
deferred do import:
import 'a.dart' as a;
var l = const [a.zero];
Se você não precisar referenciar a constante, substitua-a por um valor adequado:
var l = const [0];
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.