Package org.spongepowered.asm.mixin
Annotation Type Pseudo
@Target(TYPE)
@Retention(CLASS)
public @interface Pseudo
A Mixin marked as Pseudo is allowed to target classes which are not
available at compile time and may not be available at runtime. This means
that certain restrictions apply:
In particular, the superclass requirement for pseudo mixins is extremely important if the target has an obfuscated class in its hierarchy. For example let's assume that we're mixing into a class SomeCustomScreen from another party which extends GuiScreen which is obfuscated. Attempting to inject into initGui will succeed at dev time and fail at production time, because the reference is obfuscated. We can overcome this by ensuring the mixin inherits from the same superclass, thus allowing initGui to be resolved in the superclass hierarchy (this is not the case for normal mixins).
Overwrite methods which are not inherited from a superclass
(if the target is obfuscated) must be decorated manually with aliases.