Fix a Specific Case Issue of Generics in Injected Interfaces (when more than one type parameter are provided by the Target Class) #1177
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.
I discovered while wanting to use the second type parameter of
net.minecraft.state.State<O,S>
in a injected interface, that the second check I made in #1050 was not properly working. In fact, only the first type parameter of the target class was properly read, meaning that if an injected interface wanted to use another type parameter than the first one the check would fail.This was entirely my fault, I wrongly used SignatureVisitor#visitEnd as I thought this one would be called once SignatureReader would finish to read the signature of the target class.
I also added a test case clearly showing that the issue was solved in the pull request.