From e4164884f949ac6d3cb98b4075086ff718279c71 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 13 Jul 2022 16:28:48 +0200 Subject: [PATCH] [java-intentions] CreateSwitchIntention: turn off on literals (looks useless) GitOrigin-RevId: 5bf0483766ace26f4d3a485681b28d5f48d5fcd5 --- .../codeInsight/intention/impl/CreateSwitchIntention.java | 1 + ...lingOnBadEscapes_after.java => notAvailableOnLiteral.java} | 2 +- .../intellij/java/codeInsight/intention/CreateSwitchTest.java | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) rename java/java-tests/testData/codeInsight/createSwitch/{notFailingOnBadEscapes_after.java => notAvailableOnLiteral.java} (51%) 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());