Hi,
I'm trying a suspendable Iterable and I can't get it to work in enhanced for loops, probably due to the instrumentation not detecting that the Iterator has @Suspendable in its next() method definition.
Would it be possible to add support in instrumenting for loops, where the iterated element has a suspendable iterator as determined statically?
In my case, I'm doing:
class SuspendableIterable<T> implements Iterable<T> {
@Override
public SuspendableIterator<T> iterator() {
return new SuspendableIterator<>(...);
}
}
class SuspendableIterator<T> implements Iterator<T> {
@Override
@Suspendable
public T next() {
...
}
@Override
@Suspendable
public boolean hasNext() {
...
}
...
}
SuspendableIterable<Integer> it = ...;
for(int i : it){
}
And this breaks because the instrumentation does not detect that the for loop will call hasNext/next which are suspendable. I think this can be determined statically, no?
Hi,
I'm trying a suspendable Iterable and I can't get it to work in enhanced for loops, probably due to the instrumentation not detecting that the Iterator has
@Suspendablein itsnext()method definition.Would it be possible to add support in instrumenting
forloops, where the iterated element has a suspendable iterator as determined statically?In my case, I'm doing:
And this breaks because the instrumentation does not detect that the for loop will call
hasNext/nextwhich are suspendable. I think this can be determined statically, no?