Looks good to me! On Tue, Nov 8, 2016 at 4:43 PM, Paul Sandoz <paul.san...@oracle.com> wrote:
> Hi > > Please review this compatible fix to Stream.generate to accept a covariant > Supplier. > > Paul. > > diff -r 3e3ca9800322 src/java.base/share/classes/ > java/util/stream/Stream.java > --- a/src/java.base/share/classes/java/util/stream/Stream.java Tue Nov > 08 15:37:20 2016 -0800 > +++ b/src/java.base/share/classes/java/util/stream/Stream.java Tue Nov > 08 16:36:51 2016 -0800 > @@ -1327,7 +1327,7 @@ > * @param s the {@code Supplier} of generated elements > * @return a new infinite sequential unordered {@code Stream} > */ > - public static<T> Stream<T> generate(Supplier<T> s) { > + public static<T> Stream<T> generate(Supplier<? extends T> s) { > Objects.requireNonNull(s); > return StreamSupport.stream( > new > StreamSpliterators.InfiniteSupplyingSpliterator.OfRef<>(Long.MAX_VALUE, > s), false); > diff -r 3e3ca9800322 src/java.base/share/classes/java/util/stream/ > StreamSpliterators.java > --- a/src/java.base/share/classes/java/util/stream/StreamSpliterators.java > Tue Nov 08 15:37:20 2016 -0800 > +++ b/src/java.base/share/classes/java/util/stream/StreamSpliterators.java > Tue Nov 08 16:36:51 2016 -0800 > @@ -1346,9 +1346,9 @@ > } > > static final class OfRef<T> extends InfiniteSupplyingSpliterator<T> > { > - final Supplier<T> s; > + final Supplier<? extends T> s; > > - OfRef(long size, Supplier<T> s) { > + OfRef(long size, Supplier<? extends T> s) { > super(size); > this.s = s; > } >