Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/IDEA57492.java
Anna Kozlova dd38082794 least upper bound: pull unbounded wildcard up so types Number & Comparable<? extends Number & Comparable<?>> are produced instead of Number & Comparable<? extends Comparable<?>>
inferred type in bounds check cleanup: accept that inference result is not within its bounds and give the inference the second chance
2015-12-09 11:25:11 +01:00

27 lines
709 B
Java

abstract class A<T>{
abstract <S> S foo(S x, S y);
<S extends Number & Comparable<? extends Number>> void baz(A<S> a){}
void bar(A<Long> x, A<Integer> y){
baz(foo(x, y));
}
}
abstract class A1<T>{
abstract <S> S foo(S x, S y);
<T extends Number & Comparable<?>, S extends Number & Comparable<? extends T>> void baz(A1<S> a){}
void bar(A1<Long> x, A1<Integer> y){
baz(foo(x, y));
}
}
abstract class A3<T>{
abstract <S> S foo(S x, S y);
<S extends Number & Comparable<? extends K>, K extends Number & Comparable<? extends M>, M extends Number & Comparable<?>> void baz(A<S> a){}
void bar(A<Long> x, A<Integer> y){
baz(foo(x, y));
}
}