Functions marked 'sync*' must have a return type that is a supertype of 'Iterable<T>' for some type 'T'DRT-W1383
The analyzer produces this diagnostic when the body of a function has the
sync* modifier even though the return type of the function isn't either
Iterable or a supertype of Iterable.
Example
The following code produces this diagnostic because the body of the
function f has the 'sync*' modifier even though the return type int
isn't a supertype of Iterable:
int f() sync* {}
Common fixes
If the function should return an iterable, then change the return type to
be either Iterable or a supertype of Iterable:
Iterable<int> f() sync* {}
If the function should return a single value, then remove the sync*
modifier:
int f() => 0;