Pular para o conteúdo principal

await_of_incompatible_type

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

The 'await' expression can't be used for an expression with an extension type that is not a subtype of 'Future'.

Descrição

#

O analisador emite este diagnóstico quando o tipo da expressão em uma expressão await é um tipo de extensão, e esse tipo de extensão não é um subtipo de Future.

Exemplo

#

O código a seguir produz este diagnóstico porque o tipo de extensão E não é um subtipo de Future:

dart
extension type E(int i) {}
​
void f(E e) async {
  await e;
}

Correções comuns

#

Se o tipo de extensão estiver corretamente definido, remova o await:

dart
extension type E(int i) {}
​
void f(E e) {
  e;
}

Se o tipo de extensão deve ser aguardável, adicione Future (ou um subtipo de Future) à cláusula implements (adicionando uma cláusula implements se ainda não houver uma), e faça o tipo de representação corresponder:

dart
extension type E(Future<int> i) implements Future<int> {}
​
void f(E e) async {
  await e;
}

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