Fix conflicts caused by MappingsMerger
#1171
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The mappings merger uses a
MappingNsCompleter
visitor to fill any empty spots in the official namespace. According to this commit this was done to fix unobfuscated methods not having parameters or javadocs. However, this solution can lead to conflicts, in particular in pre-1.3 mod environments, where the client and server have separate official namespaces.To resolve this I implemented a modified version of the
MappingNsCompleter
visitor, that only fills empty spots for un-changed mappings. This will catch any unobfuscated methods as they have the same name in both the intermediary and named namespaces, but it's not perfect as it will also catch any members that are not mapped.I also had to modify
TinyRemapperHelper
because it did not take empty mapping src names into account. Is there any reason Loom is not using Tiny Remapper'sTinyUtils.createMappingProvider
?