javac 8/9 inconsistency

Anna Kozlova anna.kozlova at jetbrains.com
Mon Feb 16 17:45:56 UTC 2015


Hi,
 
The following code compiles with java 9 (b. 49) but doesn't with 8 (1.8u40
b.23)
 
class Test<K> {
 
    public static void foo(Test<String> test) {
        Test<String> e = create(Test::factory, test);
    }
 
    private static <T> T create(Supplier<T> callback, T defaultVal) {
        return null;
    }
 
    static <P> Test<P> factory() {
        return null;
    }
}
 
What is correct? 
 
BTW I've found https://bugs.openjdk.java.net/browse/JDK-8055963 which
explains to me the situation with  Test<String> e = create(() -> factory(),
test); but the fix version is 9. Would it be backported to java 8?
 
Thank you,
Anna
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20150216/961a22f7/attachment-0001.html>


More information about the compiler-dev mailing list