import checkers.igj.quals.*; @I class ThisReferenceMutableSuper { // Receiving methods public static void isRO(@ReadOnly ThisReferenceMutableSuper obj) { } public static void isMutable(@Mutable ThisReferenceMutableSuper obj) { } public static void isImmutable(@Immutable ThisReferenceMutableSuper obj) { } } @Mutable class MutableThisTest extends ThisReferenceMutableSuper { 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 } }