Fix addStaticImportFavoriteProposals for generic types #1507
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.
When you add a static method to a generic type and add it to the list of content assist favorites you can't use Quick Fix to add the required static import.
Let's say you have a helper class as follows:
Then you configure that static method as a content assist favorite:
content_assist_test.EikesHelper.test
Then you write a class to test it:
The call to the help() method is marked as a compiler error. When you open the Quick Fix menu it looks as follows:
When you execute the Quick Fix a wrong import statement is inserted.
The problem is caused by a small bug in
org.eclipse.jdt.internal.ui.text.correction.UnresolvedElementsBaseSubProcessor.addStaticImportFavoriteProposals()
. In line 1497 it computes thequalifiedTypeName
from the fully qualified method namecurr
. Ascurr
contains the string "<T>", theSignature.getQualifier()
method behaves wrongly and cuts off too much.My fix is to strip off the generic part of the type name with the help of
Signature.getTypeErasure()
beforeSignature.getQualifier()
is called. The result looks like so, now: