[records] New draft spec for JEP 359

Gavin Bierman gavin.bierman at oracle.com
Mon Jan 20 13:43:58 UTC 2020


As I mentioned in the original email, some fixes didn’t make it through the JDK 14 process. So, on this particular issue, the compiler is correct, and the spec has a bug, which will be fixed in JDK 15. (I agree that it is a minor detail.)

Gavin

> On 17 Jan 2020, at 11:22, Tagir Valeev <amaembo at gmail.com> wrote:
> 
> The spec from the previous e-mail [1] allows them, so either spec or
> javac should be updated (or we can ignore it, as this is a minor
> detail).
> 
> With best regards,
> Tagir Valeev.
> 
> [1] http://cr.openjdk.java.net/~gbierman/jep359/jep359-20200115/specs/records-jls.html
> 
> On Fri, Jan 17, 2020 at 5:02 PM Remi Forax <forax at univ-mlv.fr> wrote:
>> 
>> ----- Mail original -----
>>> De: "Tagir Valeev" <amaembo at gmail.com>
>>> À: "Gavin Bierman" <gavin.bierman at oracle.com>
>>> Cc: "amber-spec-experts" <amber-spec-experts at openjdk.java.net>
>>> Envoyé: Vendredi 17 Janvier 2020 07:32:49
>>> Objet: Re: [records] New draft spec for JEP 359
>> 
>>> So it looks like the `final` modifier on record components is allowed
>>> in 14-preview?
>> 
>> javac using the latest beta of jdk 14 rejects them.
>> so i hope the spec also reject them.
>> 
>>> 
>>> With best regards,
>>> Tagir Valeev.
>> 
>> Rémi
>> 
>>> 
>>> On Thu, Jan 16, 2020 at 10:41 PM Gavin Bierman <gavin.bierman at oracle.com> wrote:
>>>> 
>>>> Dear spec-experts,
>>>> 
>>>> I need to make a clarification regarding the earlier email. Since we are so
>>>> close to entering RDP2, it wasn’t possible to get all these changes to the spec
>>>> (and their corresponding compiler patches) into JDK 14. They will have to wait
>>>> until the second preview of records in JDK 15; along with whatever we decide
>>>> regarding the issues that Brian has raised in a recent email:
>>>> https://mail.openjdk.java.net/pipermail/amber-spec-experts/2020-January/001913.html
>>>> 
>>>> The records spec for JDK 14 that was approved by the CSR (JDK-8236189) is
>>>> available at:
>>>> 
>>>> http://cr.openjdk.java.net/~gbierman/jep359/jep359-20200115/specs/records-jls.html
>>>> 
>>>> It contains only two of the items listed in my earlier email, viz
>>>> 
>>>> * Forbids capture of local variables in a local record
>>>> * Adding missing annotation target PARAMETER (this was already implemented in
>>>> the compiler, so just a typo in the spec)
>>>> 
>>>> Just to repeat, the others - along with aligning the use of variable arity in
>>>> the record component header and the canonical constructor
>>>> (http://mail.openjdk.java.net/pipermail/amber-spec-experts/2019-December/001885.html)
>>>> - will be dealt with in the second preview of Records in JDK 15.
>>>> 
>>>> Thanks,
>>>> Gavin
>>>> 
>>>> On 10 Jan 2020, at 13:31, Gavin Bierman <gavin.bierman at oracle.com> wrote:
>>>> 
>>>> Happy new year everyone! An updated version of the records spec is available at:
>>>> 
>>>> http://cr.openjdk.java.net/~gbierman/jep359/latest
>>>> 
>>>> (which currently points to
>>>> http://cr.openjdk.java.net/~gbierman/jep359/jep359-20200110/specs/records-jls.html)
>>>> 
>>>> This addresses:
>>>> 
>>>> * Removes `final` modifier on record components
>>>> * Adding missing annotation target PARAMETER
>>>> * Corrects discussion of @SafeVarargs annotation
>>>> * Forbids capture of local variables in a local record
>>>> * Clarifies implicit formal parameter list in a compact constructor
>>>> 
>>>> Gavin
>>>> 
>>>> 
>>>> 



More information about the amber-spec-experts mailing list