Hi, There is a new warning about overloads on methods with functional interfaces, but it appears to be over-agressive as Doug pointed out to me off-list.
If i enable this when compiling tl (make JAVAC_WARNINGS:=-Xlint:overloads) then one can observe warnings such as on the primitive spliterators: /Users/sandoz/Projects/jdk8/tl/jdk/src/share/classes/java/util/Spliterator.java:642: warning: [overloads] tryAdvance(IntConsumer) in OfInt is potentially ambiguous with tryAdvance(Consumer<? super Integer>) in OfInt boolean tryAdvance(IntConsumer action); ^ /Users/sandoz/Projects/jdk8/tl/jdk/src/share/classes/java/util/Spliterator.java:645: warning: [overloads] forEachRemaining(IntConsumer) in OfInt is potentially ambiguous with forEachRemaining(Consumer<? super Integer>) in OfInt default void forEachRemaining(IntConsumer action) { The warnings propagate down to implementations, for example: /Users/sandoz/Projects/jdk8/tl/jdk/src/share/classes/java/util/Random.java:1025: warning: [overloads] tryAdvance(IntConsumer) in RandomIntsSpliterator is potentially ambiguous with tryAdvance(Consumer<? super T>) in Spliterator public boolean tryAdvance(IntConsumer consumer) { ^ where T is a type-variable: T extends Object declared in interface Spliterator /Users/sandoz/Projects/jdk8/tl/jdk/src/share/classes/java/util/Random.java:1036: warning: [overloads] forEachRemaining(IntConsumer) in RandomIntsSpliterator is potentially ambiguous with forEachRemaining(Consumer<? super T>) in Spliterator public void forEachRemaining(IntConsumer consumer) { (Incidentally it does not appear all warnings are reported, warnings for the double implementations are missing.) If I write a SuppressWarnings on Spliterator.OfInt: @SuppressWarnings("overloads") public interface OfInt extends OfPrimitive<Integer, IntConsumer, OfInt> { then that stops the first set of warnings (above) but the warnings are still propagated to the second set for Random (or in general implementations or extensions of). That seems over aggressive and more of an annoyance than helpful. Can we change this? Paul.