diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchLabelStatementBaseImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchLabelStatementBaseImpl.java index fab24259f167..42185e466e26 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchLabelStatementBaseImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiSwitchLabelStatementBaseImpl.java @@ -44,7 +44,7 @@ public abstract class PsiSwitchLabelStatementBaseImpl extends CompositePsiElemen @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { - if (lastParent != null) { + if (lastParent instanceof PsiExpressionList) { PsiSwitchBlock switchStatement = getEnclosingSwitchBlock(); if (switchStatement != null) { PsiExpression expression = switchStatement.getExpression(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting12/SwitchExpressionsEnumResolve.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting12/SwitchExpressionsEnumResolve.java new file mode 100644 index 000000000000..8490182b3175 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting12/SwitchExpressionsEnumResolve.java @@ -0,0 +1,12 @@ +import java.util.Random; + +class SwitchExpressionsEnumResolve { + enum E { E1, E2 } + + E test(E e) { + return switch (e) { + case E1 -> E2; + case E2 -> E1; + }; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightJava12HighlightingTest.kt b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightJava12HighlightingTest.kt index 2c7f46984c55..7d889ce0436c 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightJava12HighlightingTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/LightJava12HighlightingTest.kt @@ -10,6 +10,7 @@ class LightJava12HighlightingTest : LightCodeInsightFixtureTestCase() { fun testEnhancedSwitchStatements() = doTest() fun testSwitchExpressions() = doTest() + fun testSwitchExpressionsEnumResolve() = doTest() fun testValueBreaks() = doTest() fun testSwitchNumericPromotion() = doTest() fun testSimpleInferenceCases() = doTest()