import checkers.igj.quals.*; @I public class Assignability { int field = 3; @Assignable int assignable; public Assignability() { field = 1; field *= 1; field /= 1; field += 1; field -= 1; field++; ++field; field--; --field; this.field = 1; this.field *= 1; this.field /= 1; this.field += 1; this.field -= 1; this.field++; ++this.field; this.field--; --this.field; assignable = 1; assignable *= 1; assignable /= 1; assignable += 1; assignable -= 1; assignable++; ++assignable; assignable--; --assignable; this.assignable = 1; this.assignable *= 1; this.assignable /= 1; this.assignable += 1; this.assignable -= 1; this.assignable++; ++this.assignable; this.assignable--; --this.assignable; @Mutable Assignability mutableRef = null; mutableRef.field = 1; mutableRef.field *= 1; mutableRef.field /= 1; mutableRef.field += 1; mutableRef.field -= 1; mutableRef.field++; ++mutableRef.field; mutableRef.field--; --mutableRef.field; mutableRef.assignable = 1; mutableRef.assignable *= 1; mutableRef.assignable /= 1; mutableRef.assignable += 1; mutableRef.assignable -= 1; mutableRef.assignable++; ++mutableRef.assignable; mutableRef.assignable--; --mutableRef.assignable; @ReadOnly Assignability readOnlyRef = (@ReadOnly Assignability)null; readOnlyRef.field = 1; // error readOnlyRef.field *= 1; // error readOnlyRef.field /= 1; // error readOnlyRef.field += 1; // error readOnlyRef.field -= 1; // error readOnlyRef.field++; // error ++readOnlyRef.field; // error readOnlyRef.field--; // error --readOnlyRef.field; // error readOnlyRef.assignable = 1; readOnlyRef.assignable *= 1; readOnlyRef.assignable /= 1; readOnlyRef.assignable += 1; readOnlyRef.assignable -= 1; readOnlyRef.assignable++; ++readOnlyRef.assignable; readOnlyRef.assignable--; --readOnlyRef.assignable; @Immutable Assignability immutableRef = (@Immutable Assignability)null; immutableRef.field = 1; // error immutableRef.field *= 1; // error immutableRef.field /= 1; // error immutableRef.field += 1; // error immutableRef.field -= 1; // error immutableRef.field++; // error ++immutableRef.field; // error immutableRef.field--; // error --immutableRef.field; // error immutableRef.assignable = 1; immutableRef.assignable *= 1; immutableRef.assignable /= 1; immutableRef.assignable += 1; immutableRef.assignable -= 1; immutableRef.assignable++; ++immutableRef.assignable; immutableRef.assignable--; --immutableRef.assignable; } public void readOnly() @ReadOnly { field = 1; // error field *= 1; // error field /= 1; // error field += 1; // error field -= 1; // error field++; // error ++field; // error field--; // error --field; // error this.field = 1; // error this.field *= 1; // error this.field /= 1; // error this.field += 1; // error this.field -= 1; // error this.field++; // error ++this.field; // error this.field--; // error --this.field; // error assignable = 1; assignable *= 1; assignable /= 1; assignable += 1; assignable -= 1; assignable++; ++assignable; assignable--; --assignable; this.assignable = 1; this.assignable *= 1; this.assignable /= 1; this.assignable += 1; this.assignable -= 1; this.assignable++; ++this.assignable; this.assignable--; --this.assignable; @Mutable Assignability mutableRef = (@Mutable Assignability)null; mutableRef.field = 1; mutableRef.field *= 1; mutableRef.field /= 1; mutableRef.field += 1; mutableRef.field -= 1; mutableRef.field++; ++mutableRef.field; mutableRef.field--; --mutableRef.field; mutableRef.assignable = 1; mutableRef.assignable *= 1; mutableRef.assignable /= 1; mutableRef.assignable += 1; mutableRef.assignable -= 1; mutableRef.assignable++; ++mutableRef.assignable; mutableRef.assignable--; --mutableRef.assignable; @ReadOnly Assignability readOnlyRef = (@ReadOnly Assignability)null; readOnlyRef.field = 1; // error readOnlyRef.field *= 1; // error readOnlyRef.field /= 1; // error readOnlyRef.field += 1; // error readOnlyRef.field -= 1; // error readOnlyRef.field++; // error ++readOnlyRef.field; // error readOnlyRef.field--; // error --readOnlyRef.field; // error readOnlyRef.assignable = 1; readOnlyRef.assignable *= 1; readOnlyRef.assignable /= 1; readOnlyRef.assignable += 1; readOnlyRef.assignable -= 1; readOnlyRef.assignable++; ++readOnlyRef.assignable; readOnlyRef.assignable--; --readOnlyRef.assignable; @Immutable Assignability immutableRef = (@Immutable Assignability)null; immutableRef.field = 1; // error immutableRef.field *= 1; // error immutableRef.field /= 1; // error immutableRef.field += 1; // error immutableRef.field -= 1; // error immutableRef.field++; // error ++immutableRef.field; // error immutableRef.field--; // error --immutableRef.field; // error immutableRef.assignable = 1; immutableRef.assignable *= 1; immutableRef.assignable /= 1; immutableRef.assignable += 1; immutableRef.assignable -= 1; immutableRef.assignable++; ++immutableRef.assignable; immutableRef.assignable--; --immutableRef.assignable; } public void mutable() @Mutable { field = 1; field *= 1; field /= 1; field += 1; field -= 1; field++; ++field; field--; --field; this.field = 1; this.field *= 1; this.field /= 1; this.field += 1; this.field -= 1; this.field++; ++this.field; this.field--; --this.field; assignable = 1; assignable *= 1; assignable /= 1; assignable += 1; assignable -= 1; assignable++; ++assignable; assignable--; --assignable; this.assignable = 1; this.assignable *= 1; this.assignable /= 1; this.assignable += 1; this.assignable -= 1; this.assignable++; ++this.assignable; this.assignable--; --this.assignable; @Mutable Assignability mutableRef = (@Mutable Assignability)null; mutableRef.field = 1; mutableRef.field *= 1; mutableRef.field /= 1; mutableRef.field += 1; mutableRef.field -= 1; mutableRef.field++; ++mutableRef.field; mutableRef.field--; --mutableRef.field; mutableRef.assignable = 1; mutableRef.assignable *= 1; mutableRef.assignable /= 1; mutableRef.assignable += 1; mutableRef.assignable -= 1; mutableRef.assignable++; ++mutableRef.assignable; mutableRef.assignable--; --mutableRef.assignable; @ReadOnly Assignability readOnlyRef = (@ReadOnly Assignability )null; readOnlyRef.field = 1; // error readOnlyRef.field *= 1; // error readOnlyRef.field /= 1; // error readOnlyRef.field += 1; // error readOnlyRef.field -= 1; // error readOnlyRef.field++; // error ++readOnlyRef.field; // error readOnlyRef.field--; // error --readOnlyRef.field; // error readOnlyRef.assignable = 1; readOnlyRef.assignable *= 1; readOnlyRef.assignable /= 1; readOnlyRef.assignable += 1; readOnlyRef.assignable -= 1; readOnlyRef.assignable++; ++readOnlyRef.assignable; readOnlyRef.assignable--; --readOnlyRef.assignable; @Immutable Assignability immutableRef = (@Immutable Assignability)null; immutableRef.field = 1; // error immutableRef.field *= 1; // error immutableRef.field /= 1; // error immutableRef.field += 1; // error immutableRef.field -= 1; // error immutableRef.field++; // error ++immutableRef.field; // error immutableRef.field--; // error --immutableRef.field; // error immutableRef.assignable = 1; immutableRef.assignable *= 1; immutableRef.assignable /= 1; immutableRef.assignable += 1; immutableRef.assignable -= 1; immutableRef.assignable++; ++immutableRef.assignable; immutableRef.assignable--; --immutableRef.assignable; } public void immutable() @Immutable { field = 1; // error field *= 1; // error field /= 1; // error field += 1; // error field -= 1; // error field++; // error ++field; // error field--; // error --field; // error this.field = 1; // error this.field *= 1; // error this.field /= 1; // error this.field += 1; // error this.field -= 1; // error this.field++; // error ++this.field; // error this.field--; // error --this.field; // error assignable = 1; assignable *= 1; assignable /= 1; assignable += 1; assignable -= 1; assignable++; ++assignable; assignable--; --assignable; this.assignable = 1; this.assignable *= 1; this.assignable /= 1; this.assignable += 1; this.assignable -= 1; this.assignable++; ++this.assignable; this.assignable--; --this.assignable; @Mutable Assignability mutableRef = (@Mutable Assignability)null; mutableRef.field = 1; mutableRef.field *= 1; mutableRef.field /= 1; mutableRef.field += 1; mutableRef.field -= 1; mutableRef.field++; ++mutableRef.field; mutableRef.field--; --mutableRef.field; mutableRef.assignable = 1; mutableRef.assignable *= 1; mutableRef.assignable /= 1; mutableRef.assignable += 1; mutableRef.assignable -= 1; mutableRef.assignable++; ++mutableRef.assignable; mutableRef.assignable--; --mutableRef.assignable; @ReadOnly Assignability readOnlyRef = (@ReadOnly Assignability)null; readOnlyRef.field = 1; // error readOnlyRef.field *= 1; // error readOnlyRef.field /= 1; // error readOnlyRef.field += 1; // error readOnlyRef.field -= 1; // error readOnlyRef.field++; // error ++readOnlyRef.field; // error readOnlyRef.field--; // error --readOnlyRef.field; // error readOnlyRef.assignable = 1; readOnlyRef.assignable *= 1; readOnlyRef.assignable /= 1; readOnlyRef.assignable += 1; readOnlyRef.assignable -= 1; readOnlyRef.assignable++; ++readOnlyRef.assignable; readOnlyRef.assignable--; --readOnlyRef.assignable; @Immutable Assignability immutableRef = (@Immutable Assignability)null; immutableRef.field = 1; // error immutableRef.field *= 1; // error immutableRef.field /= 1; // error immutableRef.field += 1; // error immutableRef.field -= 1; // error immutableRef.field++; // error ++immutableRef.field; // error immutableRef.field--; // error --immutableRef.field; // error immutableRef.assignable = 1; immutableRef.assignable *= 1; immutableRef.assignable /= 1; immutableRef.assignable += 1; immutableRef.assignable -= 1; immutableRef.assignable++; ++immutableRef.assignable; immutableRef.assignable--; --immutableRef.assignable; } public void mutableByDefault() { field = 1; field *= 1; field /= 1; field += 1; field -= 1; field++; ++field; field--; --field; this.field = 1; this.field *= 1; this.field /= 1; this.field += 1; this.field -= 1; this.field++; ++this.field; this.field--; --this.field; assignable = 1; assignable *= 1; assignable /= 1; assignable += 1; assignable -= 1; assignable++; ++assignable; assignable--; --assignable; this.assignable = 1; this.assignable *= 1; this.assignable /= 1; this.assignable += 1; this.assignable -= 1; this.assignable++; ++this.assignable; this.assignable--; --this.assignable; @Mutable Assignability mutableRef = (@Mutable Assignability)null; mutableRef.field = 1; mutableRef.field *= 1; mutableRef.field /= 1; mutableRef.field += 1; mutableRef.field -= 1; mutableRef.field++; ++mutableRef.field; mutableRef.field--; --mutableRef.field; mutableRef.assignable = 1; mutableRef.assignable *= 1; mutableRef.assignable /= 1; mutableRef.assignable += 1; mutableRef.assignable -= 1; mutableRef.assignable++; ++mutableRef.assignable; mutableRef.assignable--; --mutableRef.assignable; @ReadOnly Assignability readOnlyRef = (@ReadOnly Assignability)null; readOnlyRef.field = 1; // error readOnlyRef.field *= 1; // error readOnlyRef.field /= 1; // error readOnlyRef.field += 1; // error readOnlyRef.field -= 1; // error readOnlyRef.field++; // error ++readOnlyRef.field; // error readOnlyRef.field--; // error --readOnlyRef.field; // error readOnlyRef.assignable = 1; readOnlyRef.assignable *= 1; readOnlyRef.assignable /= 1; readOnlyRef.assignable += 1; readOnlyRef.assignable -= 1; readOnlyRef.assignable++; ++readOnlyRef.assignable; readOnlyRef.assignable--; --readOnlyRef.assignable; @Immutable Assignability immutableRef = (@Immutable Assignability)null; immutableRef.field = 1; // error immutableRef.field *= 1; // error immutableRef.field /= 1; // error immutableRef.field += 1; // error immutableRef.field -= 1; // error immutableRef.field++; // error ++immutableRef.field; // error immutableRef.field--; // error --immutableRef.field; // error immutableRef.assignable = 1; immutableRef.assignable *= 1; immutableRef.assignable /= 1; immutableRef.assignable += 1; immutableRef.assignable -= 1; immutableRef.assignable++; ++immutableRef.assignable; immutableRef.assignable--; --immutableRef.assignable; } }