Home | History | Annotate | Download | only in tests
      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