[jdk16] RFR: 8256693: getAnnotatedReceiverType parameterizes types too eagerly

Vicente Romero vromero at openjdk.java.net
Wed Dec 16 16:34:08 UTC 2020


On Wed, 16 Dec 2020 09:41:47 GMT, Joel Borggrén-Franck <jfranck at openjdk.org> wrote:

> The fix for JDK-8256693 too often produces a ParameterizedType as the result of getAnnotatedReceiverType().getType() . A ParameterizedType is necessary only when this type or any of its transitive owner types has type parameters, but should be avoided if this isn't the case.
> 
> This implementation recursively creates a chain of ParameterizedTypes starting from the outermost type that has type parameters.
> 
> See here for the now closed JDK 17 pr: https://github.com/openjdk/jdk/pull/1414

Changes requested by vromero (Reviewer).

test/jdk/java/lang/annotation/typeAnnotations/GetAnnotatedReceiverType.java line 181:

> 179:         if (failures != 0)
> 180:             throw new RuntimeException("Test failed, see log for details");
> 181:         else if (tests != 25)

this looks a bit brittle, isn't it better to count the number of tests failing and issue an error if that number is > 0?

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

PR: https://git.openjdk.java.net/jdk16/pull/33


More information about the core-libs-dev mailing list