This annotation has two uses:
-
On an
Shadow field, it can be used to raise an error-level log
message if any write occurrences appear in the mixin bytecode. This can
be used in place of declaring the field as actually final. This
is required since it is normally desirable to remove the final
modifier from shadow fields to avoid unwanted field initialisers. If
MixinEnvironment.Option.DEBUG_VERIFY is true, then an
InvalidMixinException is thrown.
-
On an
injector or overwritten method,
it is equivalent to setting the priority of the containing mixin to
Integer.MAX_VALUE but applies only to the annotated method. This
allows methods to mark themselves as effectively final, preventing their
replacement by later mixins with higher priority.