> 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 with a new target base due to a merge 
or a rebase. The pull request now contains 11 commits:

 - Update copyright year, cleanup and fix volatile, fix test
 - Merge branch 'master' into param-implicit-mapping
 - Merge branch 'master' into param-implicit-mapping
 - Fix assuming match without MethodParameters for type annotations, move 
implementation related to getAnnotatedParameterTypes to around it
 - copyright years
 - Complete ParameterMappingTest to take care of interested scenarios
 - Merge branch 'master' into param-implicit-mapping
 - test wip
 - Introduce base for annotated types if signature is absent but method 
parameters is present
 - simplify code with further contracts
 - ... and 1 more: https://git.openjdk.org/jdk/compare/c2d9fa26...611deabe

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

Changes: https://git.openjdk.org/jdk/pull/13664/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13664&range=02
  Stats: 628 lines in 7 files changed: 541 ins; 54 del; 33 mod
  Patch: https://git.openjdk.org/jdk/pull/13664.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13664/head:pull/13664

PR: https://git.openjdk.org/jdk/pull/13664

Reply via email to