Pular para o conteúdo principal

yield_in_non_generator

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

Yield statements must be in a generator function (one marked with either 'async*' or 'sync*').

Yield-each statements must be in a generator function (one marked with either 'async*' or 'sync*').

Descrição

#

O analisador gera este diagnóstico quando uma instrução yield ou yield* aparece em uma função cujo corpo não está marcado com um dos modificadores async* ou sync*.

Exemplos

#

O código a seguir gera este diagnóstico porque yield é usado em uma função cujo corpo não tem modificador:

dart
Iterable<int> get digits {
  yield* [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
}

O código a seguir gera este diagnóstico porque yield* é usado em uma função cujo corpo tem o modificador async em vez do modificador async*:

dart
Stream<int> get digits async {
  yield* [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
}

Correções comuns

#

Adicione um modificador, ou altere o modificador existente para que seja async* ou sync*:

dart
Iterable<int> get digits sync* {
  yield* [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
}

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