Non interference enforcement

Joe Bowbeer joe.bowbeer at gmail.com
Wed Sep 26 06:55:30 PDT 2012


I'm asking whether ListIterator can be looped on, and if it can whether its
remove method will work inside a loop.

My take-away from your response is that ListIterator should *not* have a
forEach method?

On Wed, Sep 26, 2012 at 6:52 AM, Brian Goetz <brian.goetz at oracle.com> wrote:

> 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
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/lambda-libs-spec-experts/attachments/20120926/a6424ce8/attachment-0001.html 


More information about the lambda-libs-spec-experts mailing list