[Apologies for slow reply. Now going through the latest batch of feedback.]
Ack. Thanks. Gavin > On 27 Apr 2018, at 22:55, Alex Buckley <alex.buck...@oracle.com> wrote: > > On 4/27/2018 8:03 AM, Gavin Bierman wrote: >> I have uploaded the latest draft of the spec for JEP 325 at >> http://cr.openjdk.java.net/~gbierman/switch-expressions.html > > 14.16 is right to say that: > > A break statement with value Expression ***attempts to cause the > evaluation of the immediately enclosing switch expression*** > to complete normally ... > > because the following is legal (x will become 200) : > > int x = switch (e) { > case 1 -> { > try { break 100; } finally { break 200; } > } > default -> 0; > }; > > Therefore, in the discussion section, please say that: > > The preceding descriptions say "attempts to transfer control" > ***and "attempts to cause evaluation to complete normally",*** > rather than just "transfers control" ***and "causes evaluation > to complete normally",*** because if there are any try statements ... > > ... innermost to outermost, before control is transferred to the > break target ***or evaluation of the break target completes***. > > [Notice we don't yet know if evaluation of the break target > will complete normally or abruptly. If the finally clause above > was to throw an exception instead of break-200, then the > switch expression would complete abruptly by reason of the > exception, rather than completing normally with the value 100.] > > (Separately: Please flag the new text in 15.15's opening line.) > > Alex