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.