Re-enable inferring missing mappings from the source namespace #150
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.
We should keep inferring those names like in older TR versions. Without this mappings that rely on implicitly defined no-op mappings break when TR operates on a different source namespace from the mappings. Typically this involves deobfuscated class names that then cause their members to not get remapped.
Dropping missing mappings instead of inferring from source might show issues more proactively, but that'd require more effort on the API user and acts more surprisingly in typical use cases like below.
Fixes FabricMC/fabric-loader#1067
babric provides mappings for MC b1.7.3, a version that has a deobfuscated MC class name with obfuscated member names. The babric mappings don't have the noop class entry MC -> MC, the mapping file's source NS is
intermediaryand TR remapsclientOfficialtointermediary. Without this PR the members of the MC class retain their original obfuscated names because the mapping adapter drops all of then during the source NS adjustment.