async_ for_ in_ wrong_ context
The async for-in loop can only be used in an async function.
Description
#
The analyzer produces this diagnostic when an async for-in loop is found in
a function or method whose body isn't marked as being either async or
async*.
Example
#
The following code produces this diagnostic because the body of f isn't
marked as being either async or async*, but f
contains an async
for-in loop:
void f(list) {
await for (var e in list) {
print(e);
}
}
Common fixes
#If the function should return a Future, then mark the body with async:
Future<void> f(list) async {
await for (var e in list) {
print(e);
}
}
If the function should return a Stream of values, then mark the body with
async*:
Stream<void> f(list) async* {
await for (var e in list) {
print(e);
}
}
If the function should be synchronous, then remove the await before the
loop:
void f(list) {
for (var e in list) {
print(e);
}
}
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-9-1. View source or report an issue.