You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since loom 1.7 layered mappings cannot be used to combine Mojang mappings with any kind of mappings that remap only a base method or a base class and not the bridge variants or the sub-classes.
So far this creates several issues:
Mappings that remap instead of only documenting cannot be combined with the Mojang mappings layer.
Mappings that include duplicates for bridge variants (like Parchment) cannot be combined with mappings that only remap base methods.
Reproduction
Reproduction is rather simple: create a standard loom-based project, add layered mappings with first the Mojang mappings layer, add on top either Yarn or YALMM.
To complete further the reproduction, add as middle layer Parchment, we would then end up with:
Mojang mappings
Parchment
Other mappings
Hacky Solution
To avoid being stuck in my own projects I've pioneered a temporary and hacky solution, which consists in having my own Mojang mappings layer to exclude the bridge variants of methods:
This is not a suitable solution for production though: Parchment cannot be used with it as Parchment still include bridge variants of the methods, thus still creating conflicts because then the remapper doesn't understand anymore that Parchment is not trying to rename, only to provide arguments names and javadocs.
More Information
Various information I've gathered from discussions on Discord:
Incomplete hierarchy awareness work in tiny remapper might address handling these mappings cases.
There is currently no error handling if a class gets remapped to a name already taken, the error will only get visible when running the game, when compiling while using affected classes, or when decompiling.
The use of layered mappings in this way seemed to worked with loom 1.6 which adds some weirdness to this issue.
The text was updated successfully, but these errors were encountered:
The Problem
Since loom 1.7 layered mappings cannot be used to combine Mojang mappings with any kind of mappings that remap only a base method or a base class and not the bridge variants or the sub-classes.
So far this creates several issues:
Reproduction
Reproduction is rather simple: create a standard loom-based project, add layered mappings with first the Mojang mappings layer, add on top either Yarn or YALMM.
To complete further the reproduction, add as middle layer Parchment, we would then end up with:
Hacky Solution
To avoid being stuck in my own projects I've pioneered a temporary and hacky solution, which consists in having my own Mojang mappings layer to exclude the bridge variants of methods:
MojangMappingsSpec
MojangMappingsLayer
This is not a suitable solution for production though: Parchment cannot be used with it as Parchment still include bridge variants of the methods, thus still creating conflicts because then the remapper doesn't understand anymore that Parchment is not trying to rename, only to provide arguments names and javadocs.
More Information
Various information I've gathered from discussions on Discord:
The text was updated successfully, but these errors were encountered: