non_ sync_ factory
Detalhes sobre o diagnóstico 'non_sync_factory' produzido pelo analisador do Dart.
Factory bodies can't use 'async', 'async*', or 'sync*'.
Descrição
#
O analisador emite este diagnóstico quando o corpo de um construtor de fábrica
é marcado com async, async* ou sync*. Todos os construtores, incluindo
os construtores de fábrica, devem retornar uma instância da classe em que são
declarados, e não um Future, Stream ou Iterator.
Exemplo
#
O código a seguir produz este diagnóstico porque o corpo do construtor de
fábrica é marcado com async:
class C {
factory C() async {
return C._();
}
C._();
}
Correções comuns
#Se o membro precisar ser declarado como construtor de fábrica, então remova a palavra-chave que aparece antes do corpo:
class C {
factory C() {
return C._();
}
C._();
}
Se o membro precisar retornar algo diferente de uma instância da classe que o envolve, então torne o membro um método estático:
class C {
static Future<C> m() async {
return C._();
}
C._();
}
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ê.