MixinPlan
Constructors
Properties
Entry names this jar owns, always whole nest groups. The shards carry them too and that is fine — this jar sits ahead of them in classpath order and wins, exactly as the overlay already wins over the source jars behind it. What K2 rejects is a nest group SPLIT across two units, never a duplicated one.
The rename as a TABLE: reading Mixin's intermediary answers back into mojmap. Global by nature — it translates names, and a name means the same thing whichever jar it was read from.
The rename as a DECISION: whether this jar's bytes get rewritten at all. Per jar, because mc-symbols is already mojmap — rename would find nothing to map in it, but only after parsing every method body and rebuilding every constant pool. 79% of what this overlay grafts comes from that one jar.
Functions
Re-emit base with the added declarations appended, opened by revealAccess — they are added after widenClassFile ran, so nothing else would open them. Descriptors come from the intermediary side and are renamed on the way in; bodies are aconst_null; athrow, since this jar is only ever compiled against.
Every claimed entry is emitted, grafted or not: a nest group arriving half from here and half from the shard behind us is the split K2 rejects. The widen matches the shard's, so a duplicate costs its bytes and nothing else.