pattern_ constant_ from_ deferred_ library
Detalhes sobre o diagnóstico 'pattern_constant_from_deferred_library' produzido pelo analisador do Dart.
Constant values from a deferred library can't be used in patterns.
Descrição
#O analisador emite este diagnóstico quando um padrão contém um valor declarado em outra biblioteca, e essa biblioteca é importada usando um import deferred. Constantes são avaliadas em tempo de compilação, mas valores de bibliotecas deferred não estão disponíveis em tempo de compilação.
Para mais informações, consulte carregamento preguiçoso de uma biblioteca.
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 padrão de constante a.zero
é importado usando um import deferred:
import 'a.dart' deferred as a;
void f(int x) {
switch (x) {
case a.zero:
// ...
break;
}
}
Correções comuns
#
Se você precisar referenciar a constante da biblioteca importada, então remova
a palavra-chave deferred:
import 'a.dart' as a;
void f(int x) {
switch (x) {
case a.zero:
// ...
break;
}
}
Se você precisar referenciar a constante da biblioteca importada e também
precisar que a biblioteca importada seja deferred, então reescreva o comando
switch como uma sequência de comandos if:
import 'a.dart' deferred as a;
void f(int x) {
if (x == a.zero) {
// ...
}
}
Se você não precisar referenciar a constante, então substitua a expressão do case:
void f(int x) {
switch (x) {
case 0:
// ...
break;
}
}
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ê.