@@ -714,12 +714,23 @@ class A {
714714 void doFormat(String str) {
715715 String formatted = "initialValue";
716716 switch (str) {
717- case "foo": formatted = "Foo";
718- case "bar": formatted = "Bar";
717+ case "foo": formatted = "Foo"; break;
718+ case "bar": formatted = "Bar"; break;
719719 case null, default: formatted = "unknown";
720720 }
721721 }
722722 }
723+ """ ,
724+ """
725+ class A {
726+ void doFormat(String str) {
727+ String formatted = switch (str) {
728+ case "foo": yield "Foo";
729+ case "bar": yield "Bar";
730+ case null, default: yield "unknown";
731+ };
732+ }
733+ }
723734 """
724735 )
725736 );
@@ -863,4 +874,48 @@ String doFormat() {
863874 )
864875 );
865876 }
877+
878+ @ Test
879+ void notConvertWhenFallThrough () {
880+ rewriteRun (
881+ //language=java
882+ java (
883+ """
884+ class Test {
885+ void doFormat(String str) {
886+ String formatted = "initialValue";
887+ switch (str) {
888+ case "A": formatted = "A"; // no break
889+ case "B": formatted = "B"; // no break
890+ case "C": formatted = "C"; // no break
891+ default: formatted = "Z";
892+ }
893+ }
894+ }
895+ """
896+ )
897+ );
898+ }
899+
900+ @ Test
901+ void notConvertWhenFallThroughAppends () {
902+ rewriteRun (
903+ //language=java
904+ java (
905+ """
906+ class Test {
907+ void doFormat(String str) {
908+ String formatted = "initialValue";
909+ switch (str) {
910+ case "A": formatted = "A";
911+ case "B": formatted = formatted + "B";
912+ case "C": formatted = formatted + "C";
913+ default: formatted = "Z"; break;
914+ }
915+ }
916+ }
917+ """
918+ )
919+ );
920+ }
866921}
0 commit comments