import java.util.*;
import checkers.javari.quals.*;
public class Generics {
void testOneArg() {
@ReadOnly List<@ReadOnly Object> rr = null;
@ReadOnly List<@Mutable Object> rm = null;
@ReadOnly List<@QReadOnly Object> rq = null;
@Mutable List<@ReadOnly Object> mr = null;
@Mutable List<@Mutable Object> mm = null;
@Mutable List<@QReadOnly Object> mq = null;
// Assignments test
rr = rr;
//:: (assignment.type.incompatible)
rr = rm; // error
//:: (assignment.type.incompatible)
rr = rq; // error
rr = mr;
//:: (assignment.type.incompatible)
rr = mm; // error
//:: (assignment.type.incompatible)
rr = mq; // error
//:: (assignment.type.incompatible)
rm = rr; // error
rm = rm;
//:: (assignment.type.incompatible)
rm = rq; // error
//:: (assignment.type.incompatible)
rm = mr; // error
rm = mm;
//:: (assignment.type.incompatible)
rm = mq; // error
rq = rr;
rq = rm;
rq = rq;
rq = mr;
rq = mm;
rq = mq;
//:: (assignment.type.incompatible)
mr = rr; // error
//:: (assignment.type.incompatible)
mr = rm; // error
//:: (assignment.type.incompatible)
mr = rq; // error
mr = mr;
//:: (assignment.type.incompatible)
mr = mm; // error
//:: (assignment.type.incompatible)
mr = mq; // error
//:: (assignment.type.incompatible)
mm = rr; // error
//:: (assignment.type.incompatible)
mm = rm; // error
//:: (assignment.type.incompatible)
mm = rq; // error
//:: (assignment.type.incompatible)
mm = mr; // error
mm = mm;
//:: (assignment.type.incompatible)
mm = mq; // error
//:: (assignment.type.incompatible)
mq = rr; // error
//:: (assignment.type.incompatible)
mq = rm; // error
//:: (assignment.type.incompatible)
mq = rq; // error
mq = mr;
mq = mm;
mq = mq;
}
public static <T, U extends T> void prepend(List<U> eltsToPrepend, List<T> list) {}
void prependTest() {
List<Object> list = null; List<Date> eltsList = null;
prepend(eltsList, list);
}
static <T, U extends T> void prepend(List<T> list, U object) {}
void prependTest1() {
List<Object> list = null; Date d = null;
prepend(list, d);
}
}