void testAssignsFields(@AssignsFields MethodInvocation this) { mutableReciever(); // should emit error immutableReceiver(); // should emit error readOnlyReceiver(); assignsFieldsMethod(); this.mutableReciever(); // should emit error this.immutableReceiver(); // should emit error this.readOnlyReceiver(); this.assignsFieldsMethod(); mutable.mutableReciever(); mutable.immutableReceiver(); // should emit error mutable.readOnlyReceiver(); mutable.assignsFieldsMethod(); immutable.mutableReciever(); // should emit error immutable.immutableReceiver(); immutable.readOnlyReceiver(); immutable.assignsFieldsMethod(); // should emit error readOnly.mutableReciever(); // should emit error readOnly.immutableReceiver(); // should emit error readOnly.readOnlyReceiver(); readOnly.assignsFieldsMethod(); // should emit error }