On 08/06/2013 10:06 AM, Mike Duigou wrote: > Looks OK. A few minor non-blocking comments: > > DelegatingStream:: > > - I wonder if an extends wildcard might also be included on R >
I will include this change in the push if passes all tests. diff --git a/src/share/classes/java/util/stream/DelegatingStream.java b/src/share/classes/java/util/stream/DelegatingStream.java --- a/src/share/classes/java/util/stream/DelegatingStream.java +++ b/src/share/classes/java/util/stream/DelegatingStream.java @@ -209,7 +209,7 @@ } @Override - public <R, A> R collect(Collector<? super T, A, R> collector) { + public <R, A> R collect(Collector<? super T, A, ? extends R> collector) { return delegate.collect(collector); } diff --git a/src/share/classes/java/util/stream/ReferencePipeline.java b/src/share/classes/java/util/stream/ReferencePipeline.java --- a/src/share/classes/java/util/stream/ReferencePipeline.java +++ b/src/share/classes/java/util/stream/ReferencePipeline.java @@ -490,7 +490,7 @@ } @Override - public final <R, A> R collect(Collector<? super P_OUT, A, R> collector) { + public final <R, A> R collect(Collector<? super P_OUT, A, ? extends R> collector) { A container; if (isParallel() && (collector.characteristics().contains(Collector.Characteristics.CONCURRENT)) diff --git a/src/share/classes/java/util/stream/Stream.java b/src/share/classes/java/util/stream/Stream.java --- a/src/share/classes/java/util/stream/Stream.java +++ b/src/share/classes/java/util/stream/Stream.java @@ -657,7 +657,7 @@ * @see #collect(Supplier, BiConsumer, BiConsumer) * @see Collectors */ - <R, A> R collect(Collector<? super T, A, R> collector); + <R, A> R collect(Collector<? super T, A, ? extends R> collector); /** * Returns the minimum element of this stream according to the provided > ReduceOps:: > > - It is not clear in makeRef why collector.accumulator() wouldn't also > benefit from a Objects.requireNonNull > The check is only against collector. We probably should have those checked in collector already. > General:: > > - Is there a constant immutable EnumSet for the > Collector.Characteristics.IDENTITY_FINISH ? It would be nice to avoid > creating lots of EnumSet instances. > We create new EnumSet when needed to combine with incoming characteristics; otherwise, the same set is returned. Cheers, Henry