On Wed, 26 Apr 2023 14:46:53 GMT, Chen Liang <li...@openjdk.org> wrote:

>> This patch aims to correct handling of annotations on parameters with the 
>> help of `MethodParameters` attribute, which will be always available once 
>> #9862 is integrated.
>> 
>> It utilizes and expands upon the existing parameter matching logic present 
>> in `Executable::getAllGenericParameterTypes`, and delegate parameter 
>> parameterized types, parameter annotation, and parameter type annotation 
>> accesses through the matched results, if matching is available. If matching 
>> failed, it falls back to existing heuristics that works without 
>> `MethodParameters` attributes for annotations, in 
>> `Executable::handleParameterNumberMismatch` and 
>> `TypeAnnotationParser::buildAnnotatedTypes` (renamed 
>> `buildAnnotatedTypesWithHeuristics` in this patch)
>> 
>> `ParameterMappingTest` covers these scenarios with class files that have 
>> `MethodParameters` or `Signature` attributes stripped or preserved to ensure 
>> the new Reflection API implementation works for both class files generated 
>> before #9862 and after its integration.
>> 
>> Also special thanks to Joe Darcy for reviewing 8304918 (#13183); this brings 
>> much convenience to this patch.
>
> Chen Liang has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Fix assuming match without MethodParameters for type annotations, move 
> implementation related to getAnnotatedParameterTypes to around it

@liach , thank you for working on this fix. I've given the changes an initial 
skim, but will need to do a more thorough review before approving or offering 
suggestions for changes. My top priority for the next few weeks will be JDK 21 
CSRs so it may take a while for me to circle back to this PR.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/13664#issuecomment-1526777907

Reply via email to