RFR: 8292671: Hotspot Style Guide should allow covariant returns
John R Rose
jrose at openjdk.org
Fri Aug 19 16:46:49 UTC 2022
On Fri, 19 Aug 2022 14:12:05 GMT, Roland Westrelin <roland at openjdk.org> wrote:
> The style guide explicitly lists covariant returns as a disallowed
> feature of c++. I propose we allow that feature.
>
> This came up on the c2 side where, with JDK-8275201, I introduced some
> uses of covariant returns at a number of locations in the c2 code
> because I felt the code was cleaner that way. I wasn't aware it was
> mentioned on the style guide. This was noticed by another openjdk
> contributor and I prepared a change to revert the use of covariant
> returns I had introduced:
>
> https://github.com/openjdk/jdk/pull/9237
>
> But it feels that change actually makes the code less clear and
> comments on the PR indicates some other contributors feel the same
> way.
>
> It's unclear to me why covariant returns are disallowed in the first
> place and the (few) contributors I asked don't seem to know either. So
> I propose simply allowing covariant returns.
Yes, this is fine.
That restriction was written long ago, before Java itself allowed covariant returns. IIRC there are (and were) no other reasons, other than to avoid a slightly tricky language feature not familiar (at the time) to Java programmers.
Covariance is type-safe (as applied to returns of overrides) and introduces no hidden runtime costs.
-------------
Marked as reviewed by jrose (Reviewer).
PR: https://git.openjdk.org/jdk/pull/9941
More information about the hotspot-dev
mailing list