Correct synthetic parameter handling in inner classes #98
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.
Broken out of #96
It appears that a lot of inner classes have gained a Signature attribute, which causes generic signature processing to activate. This exposed some issues in its handling of synthetic constructor parameters, which I think I've taken care of enough to correctly
(not sure how these changes would react if someone disabled enum handling though)
Comparisons (via VanillaGradle)
1.16.5
note: There are some new warnings in the decompiler output here, which appear to be classes where PG has stripped the constructor. This is due to the change to now calculate synthetic parameter masks for inner classes that are marked
static
. This change is required because starting with 21w19a, Mojang's tooling has corrupted Minecraft's inner class metadata and made some non-static inner classes be marked as static.The warnings:
21w19a