blob: 85c3ba00b1843b290eb6ca1147e632f4882ceea8 [file] [log] [blame]
interface I{
<T extends Iterable<String>> void foo();
}
abstract class A<S> implements I {
public abstract <T extends Iterable<String>> void foo();
<T extends A> void bar(T x){
A a = null;
a.<Iterable<String>> foo();
x.<Iterable<String>> foo();
}
}
abstract class B<S> {
public abstract <T extends Iterable<String>> void foo();
<T extends B> void bar(T x){
B a = null;
a.<Iterable<String>> foo();
x.<Iterable<String>> foo();
}
}
abstract class C<S> {
public abstract <T extends Iterable<String>> void foo();
<T extends C & I> void bar(T x){
x.<Iterable<String>> foo();
}
}
//---------------------------------------------------------------
interface I1 {
void foo();
}
abstract class B1<S> {
public abstract <T extends Iterable<String>> void foo();
<T extends B1 & I1> void bar(T x){
B1 a = null;
a.<Iterable<String>> foo();
x.<Iterable<String>> foo();
}
}