JEP325: Switch expressions spec

Guy Steele guy.steele at oracle.com
Mon Apr 30 17:31:22 UTC 2018


> On Apr 27, 2018, at 11:03 AM, Gavin Bierman <gavin.bierman at oracle.com> wrote:
> 
> I have uploaded the latest draft of the spec for JEP 325 at http://cr.openjdk.java.net/~gbierman/switch-expressions.html
> 
> Changes from the last version:
> * Supports new -> label form in both switch expressions and switch statements
> * Added typing rules for switch expression
> * Restrict the type of a selector expression to not include long, double and float as previously proposed
> * Misc smaller changes from community feedback (thanks!)
> 
> Comments welcomed!

Note the (certainly currently intentional) lack of structural parallelism in these two parts of the BNF in Section 4.11:
__________________________________

SwitchStatementClause:

	ClauseLabel Statement

ClauseLabel:

	CasePattern ->
__________________________________

SwitchBlockStatementGroup:

	GroupLabels BlockStatements

GroupLabels:

	GroupLabel {GroupLabel}

GroupLabel:

	CasePattern :
__________________________________

They can easily be made structurally parallel by changing the first two cited rules to:
__________________________________

SwitchStatementClause:

	ClauseLabels Statement

ClauseLabels:

	ClauseLabel {ClauseLabel}

ClauseLabel:

	CasePattern ->
__________________________________

which of course results in precisely my earlier proposal to allow multiple clause labels on a single statement—this note is merely to point out that it is an easy and unsurprising change to the BNF.

Then in Section 15.29 one need only change
__________________________________

SwitchExpressionClause:

	ClauseLabel Expression ;
	ClauseLabel Block
	ClauseLabel ThrowStatement
__________________________________

to
__________________________________

SwitchExpressionClause:

	ClauseLabels Expression ;
	ClauseLabels Block
	ClauseLabels ThrowStatement
__________________________________

“It’s not fallthrough—it’s multiple labels.”

—Guy





More information about the amber-spec-observers mailing list