blob: 9a01f5ae548e911354e79a344e1130c0cdc55634 [file] [log] [blame]
package annotator.tests;
public class ExtImpl {
class Top<X, Y> {}
interface Iface<A, B> {}
interface Iface2<C, D> {}
interface Iface3 {}
interface Iface4<T, @org.checkerframework.checker.nullness.qual.NonNull S extends @org.checkerframework.checker.nullness.qual.NonNull @org.checkerframework.checker.nullness.qual.UnknownKeyFor Iface4<T, S>> {}
class C1 extends @A Top<@B Object, @C String> implements @D Iface<@E Integer, @F String> {}
class C2 implements @A Iface<@B String, @C Object>, @D Iface2<@E Object, @F Float> {}
class C3 {
class Iface3 implements annotator.tests.ExtImpl.Iface3 {}
/*
* the jaif file says that the simple name of
* the return type in JVM format is
* LIface3;
*/
@java.lang.SuppressWarnings({})
annotator.tests.ExtImpl.C3.Iface3 getI1() {
return null;
}
/*
* in this case, the jaif file uses the fully qualified name
* for the return type
* Lannotator.tests.ExtImpl.C3.Iface3;
*/
@java.lang.SuppressWarnings({})
annotator.tests.ExtImpl.C3.Iface3 getI2() {
return null;
}
/*
* the jaif file uses the simple name of the return type
* LC3$Iface3;
*/
@java.lang.SuppressWarnings({})
Iface3 getI3() {
return null;
}
/*
* in the jaif file, the return type is Iface3
* (ambiguous: could be short for the interface
* annotator.tests.ExtImpl.Iface3)
*/
@java.lang.SuppressWarnings({})
Iface3 getI4() {
return null;
}
}
}