don't loose type parameter bounds during super substitution (IDEA-175471)

This commit is contained in:
Anna.Kozlova
2017-07-07 12:54:58 +02:00
parent 13a25ce448
commit 4e8a0d2dd8
6 changed files with 31 additions and 3 deletions
@@ -0,0 +1,12 @@
class P<T, Self extends P<T, Self>> { }
class MM<T, H extends P<T, H>> {
H last;
void m(final Function<P<T, ?>, P<T, ?>> function) {
generate(last, function);
}
public static <E> void generate(E first, Function<? super E, ? extends E> generator) { }
}
interface Function<Param, Result> {}
@@ -0,0 +1,9 @@
import java.io.Serializable;
import java.util.List;
interface Child<T extends Serializable> extends List<T> {
default void m(List<Child<?>> l) {
List<? extends List<? extends Serializable>> ll = l;
}
}