switch式の値付きbreakはbreak-withになることがほぼ確定(追記ありyieldになりました)

Java12でプレビューとしてswitch式が入って、Java13で正式化できるよう作業が進んでいます。 そんな中、switch式を正式化するJEPのドラフトが出ていました。 JEP draft: Switch Expressions 追記 あっというまにドラフトではなくなっています JEP 354: Switch Expressions

プレビューとの違いはbreakがハイフン付キーワードのbreak-withになるという記述があります。

int result = switch (s) {
    case "Foo": 
        break-with 1;
    case "Bar":
        break-with 2;
    default:
        System.out.println("Neither Foo nor Bar, hmmm...");
        break-with 0;
};

かなり違和感が・・・
そしてこれは、package-privateとかいろんなキーワードが現れる準備でもありそうです。
引き算と区別ができないんでは?という点について、ハイフン付キーワードは必ずキーワードとの組み合わせになるはずなので、もともと引き算とはみなせなかったので大丈夫です。

5/22追記: break-withじゃなくてyieldになるかも。JEPが変更されています。しかし議論が大盛り上がり中でどこに落ち着くかわからない状況。 switch式の値付きbreakはyieldになる? - きしだのHatena