Call for bikeshed -- break replacement in expression switch
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu May 16 20:34:03 UTC 2019
On 16/05/2019 21:04, Brian Goetz wrote:
> The notion of “reserved word” is insufficiently precise. More
> precisely, yield is a _reserved type identifier_, like `var`. That
> means that you cannot have a class called `yield`, but you can have
> local variables, or methods, or fields, or type variables, with that
> name.
Yep - but it's also different from 'var' in the sense that 'var' never
had to fight with ambiguities with method names because it only applied
to the 'type' part of a variable declaration, which is either a
(possibly qualified) identifier (possibly followed by '<'). Parenthesis
were never allowed where 'var' as a type was expected.
For yield Eamon is right - there's a new kind of ambiguity.
On the other hand is a trivial one to resolve, given what we're
discussing now is something like
"yields" EXPRESSION
so, as soon as the compiler sees a "(" it will say: "ok, that's not a
new yield statement".
Maurizio
>
> See
>
> https://openjdk.java.net/jeps/8223002
>
> for further guidance on the fine degrees of shading between keywords,
> context-sensitive keywords, reserved identifiers, and reserved type
> names.
>
>> On May 16, 2019, at 3:56 PM, Éamonn McManus <emcmanus at google.com
>> <mailto:emcmanus at google.com>> wrote:
>>
>> "yield" isn't a reserved word, is it? Doesn't that mean that
>> `yield(5);` is ambiguous?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20190516/a08e4a9b/attachment.html>
More information about the amber-spec-experts
mailing list