1 package annotator.tests; 2 3 public class ExtImpl { 4 class Top<X, Y> {} 5 interface Iface<A, B> {} 6 interface Iface2<C, D> {} 7 interface Iface3 {} 8 interface Iface4<T, S extends Iface4<T, S>> {} 9 10 class C1 extends Top<Object, String> implements Iface<Integer, String> {} 11 12 class C2 implements Iface<String, Object>, Iface2<Object, Float> {} 13 14 class C3 { 15 class Iface3 implements annotator.tests.ExtImpl.Iface3 {} 16 17 /* 18 * the jaif file says that the simple name of 19 * the return type in JVM format is 20 * LIface3; 21 */ 22 annotator.tests.ExtImpl.C3.Iface3 getI1() { 23 return null; 24 } 25 26 /* 27 * in this case, the jaif file uses the fully qualified name 28 * for the return type 29 * Lannotator.tests.ExtImpl.C3.Iface3; 30 */ 31 annotator.tests.ExtImpl.C3.Iface3 getI2() { 32 return null; 33 } 34 35 /* 36 * the jaif file uses the simple name of the return type 37 * LC3$Iface3; 38 */ 39 Iface3 getI3() { 40 return null; 41 } 42 43 /* 44 * in the jaif file, the return type is Iface3 45 * (ambiguous: could be short for the interface 46 * annotator.tests.ExtImpl.Iface3) 47 */ 48 Iface3 getI4() { 49 return null; 50 } 51 } 52 } 53 54