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