On Fri, 26 Apr 2024 21:15:20 GMT, Vicente Romero <vrom...@openjdk.org> wrote:
>> Reflection is not retrieving generic type information for mandated >> parameters. This is a known issue which has been explicitly stated in the >> API of some reflection methods. Fix for >> [JDK-8292275](https://bugs.openjdk.org/browse/JDK-8292275) made the >> parameters of compact constructors of record classes `mandated` as specified >> in the spec. But this implied that users that previous to this change could >> retrieve the generic type of parameters of compact constructors now they >> can't anymore. The proposed fix is to try to retrieve generic type >> information for mandated parameters if available plus changing the spec of >> the related reflection methods. >> >> TIA > > Vicente Romero has updated the pull request incrementally with one additional > commit since the last revision: > > special case the new code for records only src/java.base/share/classes/java/lang/reflect/Executable.java line 354: > 352: */ > 353: int fromidx = genericParamTypes.length - 1; > 354: for (int i = out.length - 1; i >= 0; i--) { We don't really need this loop any more; can just do something like: if (genericParamTypes.length == nonGenericParamTypes.length) { out = genericParamTypes; } else { out = nonGenericParamTypes.clone(); } ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/17070#discussion_r1581555623