blob: de2431081993fd74935112224fc22cdb5096c7ff [file] [log] [blame]
// Ensure correct handling of type parameters and arrays.
// https://github.com/typetools/checker-framework/issues/2432
import java.util.ArrayList;
import java.util.List;
import org.checkerframework.checker.nullness.qual.PolyNull;
public class Issue2432b {
void objectAsTypeArg() {
List<Object> objs = new ArrayList<>();
// no error
Object[] objarray = objs.toArray();
}
void myClassAsTypeArg() {
MyClass<Object> objs = new MyClass<>();
Object[] objarray = objs.toArray();
// no error
Object[] objarray2 = objs.toArrayPoly();
}
void stringAsTypeArg() {
List<String> strs = new ArrayList<>();
Object[] strarray = strs.toArray();
}
void listAsTypeArg() {
List<List> lists = new ArrayList<>();
Object[] listarray = lists.toArray();
}
private static class MyClass<MyTypeParam> {
Object[] toArray() {
return new Object[] {new Object()};
}
@PolyNull Object[] toArrayPoly(MyClass<@PolyNull MyTypeParam> this) {
return new Object[] {new Object()};
}
}
}