import checkers.igj.quals.*; @I class ThisReference { // Receiving methods public static void isRO(@ReadOnly ThisReference obj) { } public static void isMutable(@Mutable ThisReference obj) { } public static void isImmutable(@Immutable ThisReference obj) { } public void testRO() @ReadOnly { isRO(this); isMutable(this); // should emit error isImmutable(this); // should emit error } public void testAssignsFields () @AssignsFields { isRO(this); isMutable(this); // should emit error isImmutable(this); // should emit error } public void testMutable() @Mutable { isRO(this); isMutable(this); isImmutable(this); // should emit error } public void testImmutable() @Immutable { isRO(this); isMutable(this); // should emit error isImmutable(this); } }