diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/CreateSwitchIntention.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/CreateSwitchIntention.java index 14476379320a..1a308ae21b25 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/CreateSwitchIntention.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/CreateSwitchIntention.java @@ -54,6 +54,7 @@ public class CreateSwitchIntention extends BaseElementAtCaretIntentionAction imp return expressionStatement != null && expressionStatement.getParent() instanceof PsiCodeBlock && !(expressionStatement.getExpression() instanceof PsiAssignmentExpression) && + !(expressionStatement.getExpression() instanceof PsiLiteralExpression) && PsiTreeUtil.findChildOfType(expressionStatement.getExpression(), PsiErrorElement.class) == null && isValidTypeForSwitch(expressionStatement.getExpression().getType(), expressionStatement); } diff --git a/java/java-tests/testData/codeInsight/createSwitch/notFailingOnBadEscapes_after.java b/java/java-tests/testData/codeInsight/createSwitch/notAvailableOnLiteral.java similarity index 51% rename from java/java-tests/testData/codeInsight/createSwitch/notFailingOnBadEscapes_after.java rename to java/java-tests/testData/codeInsight/createSwitch/notAvailableOnLiteral.java index fdc0cec751fa..a31c84b01e13 100644 --- a/java/java-tests/testData/codeInsight/createSwitch/notFailingOnBadEscapes_after.java +++ b/java/java-tests/testData/codeInsight/createSwitch/notAvailableOnLiteral.java @@ -1,5 +1,5 @@ class Test { void m() { - switch ("\") {} + 22; } } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/CreateSwitchTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/CreateSwitchTest.java index e6612af2a701..62677d9caa08 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/CreateSwitchTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/CreateSwitchTest.java @@ -67,7 +67,9 @@ public class CreateSwitchTest extends JavaCodeInsightFixtureTestCase { withJava7(this::doTestNotAvailable); } - public void testNotFailingOnBadEscapes() { withJava7(this::doTest); } + public void testNotFailingOnBadEscapes() { withJava7(this::doTestNotAvailable); } + + public void testNotAvailableOnLiteral() { doTestNotAvailable(); } private void withJava7(Runnable runnable) { final LanguageLevelProjectExtension languageLevelProjectExtension = LanguageLevelProjectExtension.getInstance(getProject());