[class-parse] Import parameter names for unresolvable types #921
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.
Fixes: #920
Context: 69e1b80
java-source-utils.jarisn't always able to fully resolve types.When it is unable to do so, it uses an "alternate encoding":
The problem is that
class-parse --parameter-names=PATHdidn't checkfor this "unresolvable type" pattern, so if you had a method which
contained them, e.g. the
targetparameter in:then
class-parse --parameter-names=params.xml lib.jarwouldn'ttry to "loosely match" these parameter types. Consequently,
parameter names were not imported.
Update the
IJavaMethodParameterNameProvider.GetParameterNames()method to take a new
JavaMethodParameterNameInfotype, instead offive (5) parameters, as I wanted to increase the amount of data
available to
GetParameterNames().Update
ApiXmlDocScraper.GetParameterNames()twofold://parameter/@jni-namestarts with
L.*.This allows us to import parameter names for unresolvable types.
"Force" the issue by adding
JavaInterfaceNoParameters.javaand aParameterFixup_JavaInterfaceNoParameters_JavaSourceUtils.xml,generated via:
then altering the resulting XML so that instead of e.g.
Ljava/lang/Object;,L.*Object;is used.This should permit appropriate parameter name overrides e.g. via:
Testing found a deficiency in
java-source-utils: it didn't properlyrepresent "varargs" arrays. Update
tools/java-source-utilsso thatparams-arrays are properly represented.