Package org.spongepowered.asm.mixin

## Annotation Type Final

    @Target({METHOD,FIELD})
    @Retention(RUNTIME)
    public @interface Final

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.