javac 8/9 inconsistency
Anna Kozlova
anna.kozlova at jetbrains.com
Tue Feb 17 12:59:45 UTC 2015
Hi Maurizio,
Test::factory is not exact, correct? Then when return type constraint is added, T has only one lower bound, so https://bugs.openjdk.java.net/browse/JDK-8055963 doesn’t apply as is. What can it be then?
BTW I found more inconsistencies between 8/9 in our testdata, should I file them?
Thanks,
Anna
From: Maurizio Cimadamore [mailto:maurizio.cimadamore at oracle.com]
Sent: Tuesday, February 17, 2015 12:05 PM
To: Anna Kozlova; compiler-dev at openjdk.java.net
Subject: Re: javac 8/9 inconsistency
Hi Anna,
I remember now - this is indeed:
https://bugs.openjdk.java.net/browse/JDK-8055963
That problem was ultimately caused by an ambiguity in the spec - which is why the fix was targeted for 9 and hasn't been backported. I would say it's normal for these kind of spec-related fixes to target the next release and not being backported.
Maurizio
On 16/02/15 19:27, Maurizio Cimadamore wrote:
Hi Anna,
it looks like the test should compile - I'm not sure as to which bugs are involved, I'll take a closer look and let you know.
Thanks
Maurizio
On 16/02/15 17:45, Anna Kozlova wrote:
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
!DSPAM:35,54e3207822491380419189!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20150217/094b863c/attachment-0001.html>
More information about the compiler-dev
mailing list