Under that interpretation, that leaves record members in a funny place, since a 
given mandated member (e.g., an accessor for a component) _might_ have been 
explicit in the source, or might not have been.  Should ACC_MANDATED describe 
the member descriptor (“spec mandates a member with this descriptor”) or only 
the implementation (“the source didn’t have it, but its here in the byte 
code”)?  In the latter interpretation, the presence of ACC_MANDATED on a 
mandated member would basically be random, based on implementation-of-the-day, 
which seems wrong.

> On Oct 10, 2019, at 12:06 PM, Joe Darcy <joe.da...@oracle.com> wrote:
> 
> A mandated construct is one that is mandated by the specification, but not 
> explicitly declared. Constructs of that sort have been in the platform since 
> the beginning, such as default constructors. ACC_MANDATED was added to the 
> platform only more recently and has some exposure through javax.lang.model.
> 
> I recommend going forward ACC_MANDATED to be used more widely, on all the 
> mandated structures, including the values methods on enum types, etc.
> 
> Cheers,
> 
> -Joe
> 
> On 10/10/2019 8:50 AM, Brian Goetz wrote:
>> We should match the behavior of methods like `Enum::values`.
>> 
>>> On Oct 10, 2019, at 10:15 AM, Remi Forax <fo...@univ-mlv.fr> wrote:
>>> 
>>> Hi all,
>>> fields and methods of a record are marked ACC_MANDATED which contradict JLS 
>>> 13.1.12 that explains that you can not use ACC_MANDATED on field and method.
>>> 
>>> regards,
>>> Rémi
>>> 

Reply via email to