RFR: 8315134: javac inference seems to be capturing types incorrectly

Vicente Romero vromero at openjdk.org
Tue Aug 29 16:20:22 UTC 2023

On Tue, 29 Aug 2023 03:20:52 GMT, Vicente Romero <vromero at openjdk.org> wrote:

> this code:
> import java.util.*;
> public class Test {
>     private static <T> void arrayMethod(List<? super T>[] args) {
>         listMethod(Arrays.asList(args));
>     }
>     private static <T> void listMethod(List<List<? super T>> list) {}
> }
> is being rejected by the compiler. This code should be accepted according to the spec. The compiler is doing a capture conversion that is not mentioned in the spec while reducing subtyping constraints during type inference. This fix is syncing the compiler with the spec.

the issue is a duplicate of [JDK-8206142](https://bugs.openjdk.org/browse/JDK-8206142) at that instance we decided to wait for the related spec to be finished. Closing this PR as this is a known issue we won't fix for the time being


PR Comment: https://git.openjdk.org/jdk/pull/15463#issuecomment-1697764600

More information about the compiler-dev mailing list