Draft JEP: Keyword Management for the Java Language

Remi Forax forax at univ-mlv.fr
Wed May 1 21:23:39 UTC 2019


----- Mail original -----
> De: "Alex Buckley" <alex.buckley at oracle.com>
> À: "jdk-dev" <jdk-dev at openjdk.java.net>
> Envoyé: Mercredi 1 Mai 2019 22:55:53
> Objet: Re: Draft JEP: Keyword Management for the Java Language

> On 5/1/2019 1:21 PM, Remi Forax wrote:
>> I think 'this' are also missing from {A}, Foo.this is a valid expression (while
>> semantically invalid).
> 
> Yes, and `Foo.this-day` is close enough to `Foo::new-day` that both can
> be explained together (so we don't forget why `this` ended up in set A).
> 
>> For 'null', 'true' and 'false', there are also valid expression but invalid
>> semantically,
>> so following the same logic they should be in {A} and {B}.
>>
>> in that case non-null is not a valid hyphenated keyword but it's a valid
>> hyphenated keyword if contextual (as modifier for a field or a method).
> 
> I think the JEP already takes reasonable care over `null`, `true`, and
> `false`. They're highlighted as literals rather than keywords early on,
> and `non-null` and `eventually-true` are clearly marked as examples of
> hyphenated _contextual_ keywords rather than hyphenated _classic_
> keywords. Later, the "formal" statement involving sets A and B is
> specifically about hyphenated _classic_ keywords, so it doesn't advise
> on `non-null` at all. I could add constraints for hyphenated
> _contextual_ keywords but this JEP is a policy/approach, not a spec, so
> I'm going to stop here; this has been a productive thread.

i agree.

> 
> Alex

Rémi


More information about the jdk-dev mailing list