Possible records tweak

Gavin Bierman gavin.bierman at oracle.com
Wed Apr 29 17:07:02 UTC 2020


Talking it through with Dan, I think the best thing for the JLS is to avoid issues of `this` etc and simply state:

	It is a compile-time error to assign to the instance fields of the record class in the body of the compact constructor.

Thoughts?
Gavin


> On 27 Apr 2020, at 23:54, Remi Forax <forax at univ-mlv.fr> wrote:
> 
> 
> 
> ----- Mail original -----
>> De: "Brian Goetz" <brian.goetz at oracle.com>
>> À: "daniel smith" <daniel.smith at oracle.com>, "John Rose" <john.r.rose at oracle.com>
>> Cc: "amber-spec-experts" <amber-spec-experts at openjdk.java.net>
>> Envoyé: Mardi 28 Avril 2020 00:37:05
>> Objet: Re: Possible records tweak
> 
>>>> So maybe `super` is DA but `this` is DU, just like in the code
>>>> before the super-constructor call.  (I’m abusing the terms DA/DU
>>>> like Brian is, and you call out, but they are close to correct.)
>>> I think this means I can't call inherited method 'getParentWidget()' or some
>>> static utility 'computeWidgetOfParent(this)' method (e.g.,
>>> 'identityHashCode(this)'). I *can* call 'super.getParentWidget()'.
>> 
>> Except records only inherit from Record, which has no non-inherited
>> instance methods.
> 
> super.wait(), etc should work
> 
> Rémi
> 



More information about the amber-spec-experts mailing list