diff --git a/java/java-impl/src/com/intellij/codeInspection/DuplicateBranchesInSwitchInspection.java b/java/java-impl/src/com/intellij/codeInspection/DuplicateBranchesInSwitchInspection.java
index 9b208d60baa9..b3e7ba1f91a4 100644
--- a/java/java-impl/src/com/intellij/codeInspection/DuplicateBranchesInSwitchInspection.java
+++ b/java/java-impl/src/com/intellij/codeInspection/DuplicateBranchesInSwitchInspection.java
@@ -708,6 +708,7 @@ public class DuplicateBranchesInSwitchInspection extends LocalInspectionTool {
private static boolean isSimpleExit(@Nullable PsiStatement statement) {
if (statement instanceof PsiBreakStatement ||
+ statement instanceof PsiYieldStatement ||
statement instanceof PsiContinueStatement ||
statement instanceof PsiThrowStatement) {
return true;
@@ -935,4 +936,4 @@ public class DuplicateBranchesInSwitchInspection extends LocalInspectionTool {
tracker.deleteAndRestoreComments(myRuleToDelete.myLabel);
}
}
-}
+}
\ No newline at end of file
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/ElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/ElementType.java
index 1475d91e3653..0faaf45851d1 100644
--- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/ElementType.java
+++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/ElementType.java
@@ -52,7 +52,8 @@ public interface ElementType extends JavaTokenType, JavaDocTokenType, JavaElemen
TokenSet JAVA_STATEMENT_BIT_SET = TokenSet.create(
EMPTY_STATEMENT, BLOCK_STATEMENT, EXPRESSION_STATEMENT, EXPRESSION_LIST_STATEMENT, DECLARATION_STATEMENT, IF_STATEMENT,
WHILE_STATEMENT, FOR_STATEMENT, FOREACH_STATEMENT, DO_WHILE_STATEMENT, SWITCH_STATEMENT, SWITCH_LABEL_STATEMENT, BREAK_STATEMENT,
- CONTINUE_STATEMENT, RETURN_STATEMENT, THROW_STATEMENT, SYNCHRONIZED_STATEMENT, TRY_STATEMENT, LABELED_STATEMENT, ASSERT_STATEMENT);
+ CONTINUE_STATEMENT, RETURN_STATEMENT, THROW_STATEMENT, SYNCHRONIZED_STATEMENT, TRY_STATEMENT, LABELED_STATEMENT, ASSERT_STATEMENT,
+ YIELD_STATEMENT);
TokenSet JAVA_MODULE_STATEMENT_BIT_SET = TokenSet.create(
REQUIRES_STATEMENT, EXPORTS_STATEMENT, OPENS_STATEMENT, USES_STATEMENT, PROVIDES_STATEMENT);
diff --git a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpression.java b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpression.java
index df6d8b91435a..ffdbe88f9133 100644
--- a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpression.java
+++ b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpression.java
@@ -2,13 +2,13 @@ class C {
void test(int n) {
String s = switch (n) {
case 1:
- break "a";
+ yield "a";
case 2:
- break "b";
+ yield "b";
case 3:
- break "a";
+ yield "a";
default:
- break "";
+ yield "";
};
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDefaultFirst.java b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDefaultFirst.java
index d0ce32d5bda4..75164abd96f4 100644
--- a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDefaultFirst.java
+++ b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDefaultFirst.java
@@ -3,11 +3,11 @@ class C {
String s = switch (n) {
default:
case 1:
- break "a";
+ yield "a";
case 2:
- break "b";
+ yield "b";
case 3:
- break "a";
+ yield "a";
};
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDefaultLast.java b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDefaultLast.java
index 70f28327bfa1..e80f56b00796 100644
--- a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDefaultLast.java
+++ b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDefaultLast.java
@@ -2,12 +2,12 @@ class C {
void test(int n) {
String s = switch (n) {
case 1:
- break "a";
+ yield "a";
case 2:
- break "b";
+ yield "b";
case 3:
default:
- break "a";
+ yield "a";
};
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDifferentComments.java b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDifferentComments.java
index bbd4d17dd8d7..c699bb8e085b 100644
--- a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDifferentComments.java
+++ b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionDifferentComments.java
@@ -2,13 +2,13 @@ class C {
void test(int n) {
String s = switch (n) {
case 1:
- break "a"; // one comment
+ yield "a"; // one comment
case 2:
- break "b";
+ yield "b";
case 3:
- break "a"; // another comment
+ yield "a"; // another comment
default:
- break "";
+ yield "";
};
}
}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionSameComments.java b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionSameComments.java
index 5f55aff25d39..32ceb4ddeec9 100644
--- a/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionSameComments.java
+++ b/java/java-tests/testData/inspection/duplicateBranchesInEnhancedSwitch/CaseLabelsExpressionSameComments.java
@@ -2,13 +2,13 @@ class C {
void test(int n) {
String s = switch (n) {
case 1:
- break "a"; // same comment
+ yield "a"; // same comment
case 2:
- break "b";
+ yield "b";
case 3:
- break "a"; // same comment
+ yield "a"; // same comment
default:
- break "";
+ yield "";
};
}
}
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/DuplicateBranchesInEnhancedSwitchTest.kt b/java/java-tests/testSrc/com/intellij/java/codeInspection/DuplicateBranchesInEnhancedSwitchTest.kt
index 080ede9281df..01b84fc52b31 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInspection/DuplicateBranchesInEnhancedSwitchTest.kt
+++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/DuplicateBranchesInEnhancedSwitchTest.kt
@@ -10,16 +10,8 @@ import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase
* @author Pavel.Dolgov
*/
class DuplicateBranchesInEnhancedSwitchTest : LightJavaCodeInsightFixtureTestCase() {
- val inspection = DuplicateBranchesInSwitchInspection()
-
- override fun setUp() {
- super.setUp()
- myFixture.enableInspections(inspection)
- }
-
override fun getBasePath() = JavaTestUtil.getRelativeJavaTestDataPath() + "/inspection/duplicateBranchesInEnhancedSwitch"
-
- override fun getProjectDescriptor(): LightProjectDescriptor = JAVA_12
+ override fun getProjectDescriptor(): LightProjectDescriptor = JAVA_13
fun testSimpleExpression() = doTest()
fun testSimpleStatement() = doTest()
@@ -35,6 +27,7 @@ class DuplicateBranchesInEnhancedSwitchTest : LightJavaCodeInsightFixtureTestCas
fun testCaseLabelsExpressionSameComments() = doTest()
private fun doTest() {
+ myFixture.enableInspections(DuplicateBranchesInSwitchInspection())
myFixture.testHighlighting("${getTestName(false)}.java")
}
}
\ No newline at end of file