CreateSwitchIntention: disable in assignment (while valid, rarely makes sense -- see IDEA-206725)

This commit is contained in:
Tagir Valeev
2019-02-06 11:52:59 +07:00
parent 1703f867df
commit 1930c6736b
3 changed files with 12 additions and 0 deletions

View File

@@ -53,6 +53,7 @@ public class CreateSwitchIntention extends BaseElementAtCaretIntentionAction imp
PsiExpressionStatement expressionStatement = PsiTreeUtil.getParentOfType(element, PsiExpressionStatement.class, false);
return expressionStatement != null &&
expressionStatement.getParent() instanceof PsiCodeBlock &&
!(expressionStatement.getExpression() instanceof PsiAssignmentExpression) &&
PsiTreeUtil.findChildOfType(expressionStatement.getExpression(), PsiErrorElement.class) == null &&
isValidTypeForSwitch(expressionStatement.getExpression().getType(), expressionStatement);
}

View File

@@ -0,0 +1,7 @@
class Test {
int field;
void m(int x) {
field =<caret> x;
}
}

View File

@@ -59,6 +59,10 @@ public class CreateSwitchTest extends JavaCodeInsightFixtureTestCase {
doTestNotAvailable();
}
public void testNotAvailableInAssignment() {
doTestNotAvailable();
}
public void testNotAvailableOnRedCode() {
withJava7(this::doTestNotAvailable);
}