import checkers.javari.quals.*;
import java.util.*;
public class QReadOnlys {
void testSubtypeAsTypeArgument() {
List<@QReadOnly Date> mq = null;
List<@ReadOnly Date> mr = null;
List<@Mutable Date> mm = null;
@ReadOnly List<@QReadOnly Date> rq = null;
@ReadOnly List<@ReadOnly Date> rr = null;
@ReadOnly List<@Mutable Date> rm = null;
// mq test
mq = mq;
mq = mr;
mq = mm;
//:: (assignment.type.incompatible)
mq = rq; // invalid
//:: (assignment.type.incompatible)
mq = rr; // invalid
//:: (assignment.type.incompatible)
mq = rm; // invalid
// mr test
//:: (assignment.type.incompatible)
mr = mq; // invalid
mr = mr;
//:: (assignment.type.incompatible)
mr = mm; // invalid
//:: (assignment.type.incompatible)
mr = rq; // invalid
//:: (assignment.type.incompatible)
mr = rr; // invalid
//:: (assignment.type.incompatible)
mr = rm; // invalid
// mm test
//:: (assignment.type.incompatible)
mm = mq; // invalid
//:: (assignment.type.incompatible)
mm = mr; // invalid
mm = mm;
//:: (assignment.type.incompatible)
mm = rq; // invalid
//:: (assignment.type.incompatible)
mm = rr; // invalid
//:: (assignment.type.incompatible)
mm = rm; // invalid
// rq test
rq = mq;
rq = mr;
rq = mm;
rq = rq;
rq = rr;
rq = rm;
// rr test
//:: (assignment.type.incompatible)
rr = mq; // invalid
rr = mr;
//:: (assignment.type.incompatible)
rr = mm; // invalid
//:: (assignment.type.incompatible)
rr = rq; // invalid
rr = rr;
//:: (assignment.type.incompatible)
rr = rm; // invalid
// rm test
//:: (assignment.type.incompatible)
rm = mq; // invalid
//:: (assignment.type.incompatible)
rm = mr; // invalid
rm = mm;
//:: (assignment.type.incompatible)
rm = rq; // invalid
//:: (assignment.type.incompatible)
rm = rr; // invalid
rm = rm;
}
void testQReadOnly() {
List<@QReadOnly Date> lst = null;
@ReadOnly Date roDate = null;
//:: (argument.type.incompatible)
lst.add(roDate); // invalid
}
}