import testlib.util.*; // Test case for Issue 135: // https://github.com/typetools/checker-framework/issues/135 // Method type argument substitution needs to consider arrays correctly. public class GenericTest5 { interface Foo { <T> T[] id(T[] a); } public <U> void test(Foo foo, U[] a) { U[] array = foo.id(a); } public <T> void test1(Foo foo, T[] a) { T[] array = foo.id(a); } public <S extends @Odd Object> void test2(Foo foo, S[] a) { S[] array = foo.id(a); } public <S extends @Odd Object, T extends S> void test3(Foo foo, T[] a) { T[] array = foo.id(a); } }