Updated Draft specs for JEP 359 (Records)

Dan Smith daniel.smith at oracle.com
Tue Nov 26 16:48:16 UTC 2019


> On Nov 25, 2019, at 7:02 PM, Alex Buckley <alex.buckley at oracle.com> wrote:
> 
> // Cutting amber-dev
> 
> On 11/25/2019 3:23 PM, Gavin Bierman wrote:
>> http://cr.openjdk.java.net/~gbierman/jep359/jep359-20191125/specs/records-jvms.html
> 
> The JVMS draft is good. It should have an informative note in 4.7.8: "It is an oversight in the design of the `class` file that there is no way to flag compiler-generated methods which are not considered implementation artifacts (JLS 13.1). This oversight means that reflective APIs may not accurately indicate the mandated status of such methods."  These words may not look like much to you, but commentary about what the class file CAN'T do is pure gold to readers, and will help us recollect the situation many years from now. I accept that "more notes == more stuff to update when situations change" -- that is the risk we take for the reward of informing our readers.

Here's my slightly-tweaked version of this note:

> It is a limitation of the `class` file that, while a method parameter or a
> module may be marked `ACC_MANDATED` ([4.7.24], [4.7.25]), there is no
> equivalent way to flag compiler-generated methods and fields which are not
> considered implementation artifacts (JLS 13.1).
> This limitation means that reflective APIs may not accurately indicate the
> mandated status of such members.



More information about the amber-spec-experts mailing list