Hi Peter, Thanks for your feedback, and for pointing out these mistakes.
I’ve rectified this now, and you can find the latest changes in the new webrev and specdiff below. webrev: http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.04/ specdiff: http://cr.openjdk.java.net/~pconcannon/8238286/specdiff/specout.01/ Kind regards, Patrick > On 5 Jul 2020, at 09:21, Peter Levart <peter.lev...@gmail.com> wrote: > > ...also note that examples in the Stream javadoc comments, like for example: > > > > 385 * <pre>{@code > 386 * numbers.mapMulti((Consumer<Integer> c, Number n) -> { > 387 * if (n instanceof Integer) > 388 * c.accept((Integer) n); > 389 * }); > 390 * }</pre> > > > > ...have the arguments (Consumer, element) still wrong. They are swapped now > as of latest webrev.03: > > > > 422 default <R> Stream<R> mapMulti(BiConsumer<? super T, ? super > Consumer<R>> mapper) { > > > Regards, Peter > > > > On 7/5/20 10:00 AM, Peter Levart wrote: >> Hi Patrick, >> >> >> In the test(s), you often use sink::accept: >> >> >> exerciseOps(data, s -> s.mapMulti((e, sink) -> IntStream.range(0, >> e).forEach(sink::accept))); >> >> >> ...where you could simply pass just sink: >> >> >> exerciseOps(data, s -> s.mapMulti((e, sink) -> IntStream.range(0, >> e).forEach(sink))); >> >> >> Is this intentional and why? >> >> >> Regards, Peter >> >> >> On 7/2/20 6:45 PM, Patrick Concannon wrote: >>> Hi Remi, >>> >>> Well spotted on the bad link. I’ve updated that now. >>> >>> http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.03/ >>> <http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.03/> >>> <http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.03/> >>> <http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.03/> >>> >>> As for the placement of the new FIs, it was decided that once we can use >>> primitive types in generics the need for these interfaces will hopefully >>> fade, and it was deemed better to keep them closer together for this >>> reason. This approach also has the benefit of reducing the exposure / >>> footprint of the general functional interfaces. >>> >>> Kind regards, >>> >>> Patrick >>> >>> >>>> On 2 Jul 2020, at 15:30, Remi Forax <fo...@univ-mlv.fr> >>>> <mailto:fo...@univ-mlv.fr> wrote: >>>> >>>> Hi Patrick & Julia, >>>> this version starts to look good. >>>> >>>> I just don't understand why the new functional interfaces are not in >>>> java.util.function like the other ones ? >>>> (BTW, in the javadoc, the link to the summary overview point to the wrong >>>> one, to java.util.stream and not java.util.function). >>>> >>>> About the examples, i will try to think about that this evening :) >>>> >>>> regards, >>>> Rémi >>>> >>>> ----- Mail original ----- >>>>> De: "Patrick Concannon" <patrick.concan...@oracle.com> >>>>> <mailto:patrick.concan...@oracle.com> >>>>> À: "Julia Boes" <julia.b...@oracle.com> <mailto:julia.b...@oracle.com> >>>>> Cc: "core-libs-dev" <core-libs-dev@openjdk.java.net> >>>>> <mailto:core-libs-dev@openjdk.java.net> >>>>> Envoyé: Jeudi 2 Juillet 2020 15:30:45 >>>>> Objet: Re: RFR[8238286]: 'Add new flatMap stream operation that is more >>>>> amenable to pushing’ >>>>> Hi, >>>>> >>>>> John: Thanks for your feedback. We've rearranged the ordering of the >>>>> parameters >>>>> of the BiConsumer to follow the convention you suggested, and hopefully >>>>> improve >>>>> readability going forward. Additional FIs (IntObjConsumer, etc.) have >>>>> been >>>>> added as sub-interfaces to the corresponding Stream classes i.e. {Int, >>>>> Double, >>>>> Long}Stream. >>>>> >>>>> Remi: Your argument makes sense, and we have updated the BiConsumers >>>>> generic >>>>> type to `<? super Consumer<R>>` as you suggested. Thanks for pointing >>>>> this out. >>>>> We have also removed the caching. >>>>> WRT to the wrappers used in the examples: good examples are tough to nail >>>>> down. >>>>> We think the examples in their current form do a good job of >>>>> demonstrating how >>>>> the method can be used, but we welcome any alternative suggestions. >>>>> >>>>> >>>>> The changes discussed can be found in the updated webrev below. >>>>> >>>>> http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.02/ >>>>> <http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.02/> >>>>> <http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.02/> >>>>> <http://cr.openjdk.java.net/~pconcannon/8238286/webrevs/webrev.02/> >>>>> >>>>> >>>>> Kind regards, >>>>> >>>>> Patrick >>>>> >>>>>> On 26 Jun 2020, at 17:46, Julia Boes <julia.b...@oracle.com> >>>>>> <mailto:julia.b...@oracle.com> wrote: >>>>>> >>>>>> w