SoV-3: constructor questions

forax at univ-mlv.fr forax at univ-mlv.fr
Thu Jan 27 20:12:49 UTC 2022


----- Original Message -----
> From: "Dan Heidinga" <heidinga at redhat.com>
> To: "Remi Forax" <forax at univ-mlv.fr>
> Cc: "daniel smith" <daniel.smith at oracle.com>, "valhalla-spec-experts" <valhalla-spec-experts at openjdk.java.net>
> Sent: Thursday, January 27, 2022 4:41:14 PM
> Subject: Re: SoV-3: constructor questions

>>
>> The reason John gave for allowing a <new> method to return a super type is for
>> lambda proxies.
>>
>> A lambda proxies is a hidden value class, i.e. a value class loaded by
>> lookup.defineHiddenClass(),
>> given that a hidden class as no real name, the idea is to use Object or perhaps
>> the functional interface as return type.
>> If the functional interface is used, there will be no weird cast in the
>> bytecode.
>>
> 
> Right.  I'm suggesting we remove any restrictions on the return type
> for `<new>` methods as we've identified cases (like the hidden value
> class) where restrictions are problematic and haven't clearly
> identified the benefits from these restrictions.  It feels like we're
> trying to specify a "best practice" while leaving an escape hatch
> cause we know we need it.  Seems like it would be better to not add
> the restriction in the first place.

yes, i agree on that.

> 
> --Dan

Rémi


More information about the valhalla-spec-observers mailing list