blob: c46553187882aa579681590d81da013a4f970ac6 [file] [log] [blame]
/*
* Sets up recursive bounds where the bounds themselves are type variables.
*/
interface MMyList<LL> {}
interface MMyMap<KEY, VALUE> {}
class Tester<EE extends TT, TT extends MMyList<EE>> {}
class WithWildcard<ZZ extends QQ, QQ extends YY, YY extends MMyMap<QQ, ZZ>> {
void context() {
ZZ zz = null;
QQ qq = null;
YY yy = null;
}
}
class Test<KK extends FF, FF extends MMyMap<KK, KK>> {
KK kk;
FF ff;
Test(KK kk, FF ff) {
this.kk = kk;
this.ff = ff;
}
}
class RecursiveTypevarClass<T extends RecursiveTypevarClass<T>> {
T t;
RecursiveTypevarClass(T t) {
this.t = t;
}
}
class RecursiveImplements implements MMyList<RecursiveImplements> {}