001// This class is used in daikon.test.TestAst. 002 003// You can append methods after the last one, but don't rearrange 004// those already there. 005 006package daikon.test; 007 008import java.util.List; 009 010@SuppressWarnings({"rawtypes", "nullness"}) // testing code 011public class GenericTestClass<A, B extends String, C extends java.lang.Object, U> { 012 013 public List foo1() { 014 return null; 015 } 016 017 public List<String> foo2() { 018 return null; 019 } 020 021 public U foo3() { 022 return null; 023 } 024 025 <D extends Comparable> List<String> foo4() { 026 return null; 027 } 028 029 <E extends java.lang.Object> List<U> foo5() { 030 return null; 031 } 032 033 <F> List<String> foo55() { 034 return null; 035 } 036 037 public List foo6(List x) { 038 return null; 039 } 040 041 public List foo7(List<A> x) { 042 return null; 043 } 044 045 public List foo8(A x) { 046 return null; 047 } 048 049 public List foo9(B x) { 050 return null; 051 } 052 053 public List foo10(C x) { 054 return null; 055 } 056 057 <G extends Comparable> List<U> foo11(G x, C y) { 058 return null; 059 } 060 061 // test type parameter shadowing 062 @SuppressWarnings("TypeParameterShadowing") 063 <C extends Comparable> List<U> foo115(C x, B y) { 064 return null; 065 } 066 067 <G extends Comparable> List<String> foo12(A x, List<B> y) { 068 return null; 069 } 070 071 <G extends Comparable> List<String> foo13(A x, List<U> y) { 072 return null; 073 } 074 075 <H extends java.lang.Object> List<String> foo14(H x) { 076 return null; 077 } 078 079 <H extends java.lang.Object> List<U> foo15(B x) { 080 return null; 081 } 082 083 <I> List<String> foo16(I x) { 084 return null; 085 } 086 087 <I> List<String> foo17(I[] x) { 088 return null; 089 } 090 091 <I> List<String> foo18(I[][] x) { 092 return null; 093 } 094 095 <G extends Comparable> List<U> foo19(G[] x, C[] y) { 096 return null; 097 } 098 099 // Ugh! But this is legal. 100 List[] foo20(Comparable[][] x[], Object[] y[])[] { 101 return null; 102 } 103 104 // This is not legal in Java 6. 105 // public class Simple<U extends Map, V extends U.Entry> { 106 // public void foo1 (V x) { } 107 // public void foo2 (U.Entry x) { } 108 // } 109 110}