Non interference enforcement
Brian Goetz
brian.goetz at oracle.com
Wed Sep 26 06:52:29 PDT 2012
ListIterator does not currently have a forEach method (nor does
Iterator, for that matter.) And its remove method is nilary. So I
guess I do not follow your question?
On 9/26/2012 9:45 AM, Joe Bowbeer wrote:
> Btw, at first glance, this code snippet looked like ListIterator code
> that would be allowed.
>
> What about the following? Is it legal?
>
> listIterator.forEach(e -> { listIterator.remove(e); });
>
>
> On Wed, Sep 26, 2012 at 6:26 AM, Remi Forax <forax at univ-mlv.fr
> <mailto:forax at univ-mlv.fr>> wrote:
>
> We currently ask users to write lambdas that doesn't interfere with
> the source collection
> of a stream but it's not enforced in the code.
>
> By example,
> list.stream().forEach(e -> { list.remove(e); });
> may works or not depending how the pipeline is implemented.
>
> This is a serous departure for the current way java.util collections
> works
> and I wonder if we should not keep the fail-fast guarantee for those
> collections.
>
> Rémi
>
>
More information about the lambda-libs-spec-observers
mailing list