blob: 226bb0973a0d28b6ddc988c69f347fec9294153a [file] [log] [blame]
import java.util.Arrays;
import org.checkerframework.checker.fenum.qual.FenumTop;
/*
* This test case violates an assertion in the compiler.
* It does not depend on the Fenum Checker, it breaks for any checker.
*/
public class IdentityArrayListTest {
// The type of the third argument to Arrays.copyOf should be:
// Class<? extends T @FenumTop []>
// But the annotated JDK does not have annotations for the Fenum Checker.
@SuppressWarnings("argument")
public <T> T[] toArray(T[] a) {
// Warnings only with -Alint=cast:strict.
// TODO:: warning: (cast.unsafe)
// :: warning: [unchecked] unchecked cast
return (T[]) Arrays.copyOf(null, 0, a.getClass());
}
public <T> T[] toArray2(T[] a) {
wc(null, 0, new java.util.LinkedList<T[]>());
// TODO:: warning: (cast.unsafe)
// :: warning: [unchecked] unchecked cast
return (T[]) myCopyOf(null, 0, a.getClass());
}
public static <T, U> T[] myCopyOf(
U[] original, int newLength, Class<? extends T @FenumTop []> newType) {
return null;
}
public static <T, U> T[] wc(
U[] original, int newLength, java.util.List<? extends T @FenumTop []> arr) {
return null;
}
}