blob: bbb565f10f6fa4baae7f3b1fa719dc908673f36d [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.<error descr="Type arguments given on a raw method"><Iterable<String>></error> foo();
x.<error descr="Type arguments given on a raw method"><Iterable<String>></error> 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.<error descr="Type arguments given on a raw method"><Iterable<String>></error> foo();
x.<error descr="Type arguments given on a raw method"><Iterable<String>></error> foo();
}
}