From 2d9a2416906b1189597be67fc361152e9e8b94c2 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 23 Feb 2012 12:43:08 +0100 Subject: [PATCH] convert from switch: use equals for non primitive/enums types --- .../daemon/impl/quickfix/ConvertSwitchToIfIntention.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ConvertSwitchToIfIntention.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ConvertSwitchToIfIntention.java index 3bf3f10a89d5..9b203305107c 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ConvertSwitchToIfIntention.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/ConvertSwitchToIfIntention.java @@ -23,6 +23,7 @@ import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.controlFlow.*; import com.intellij.psi.search.LocalSearchScope; import com.intellij.psi.search.searches.ReferencesSearch; +import com.intellij.psi.util.PsiUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -82,6 +83,11 @@ public class ConvertSwitchToIfIntention implements IntentionAction { } final boolean isSwitchOnString = switchExpressionType.equalsToText("java.lang.String"); + boolean useEquals = isSwitchOnString; + if (!useEquals) { + final PsiClass aClass = PsiUtil.resolveClassInType(switchExpressionType); + useEquals = aClass != null && !aClass.isEnum(); + } final String declarationString; final boolean hadSideEffects; final String expressionText; @@ -204,7 +210,7 @@ public class ConvertSwitchToIfIntention implements IntentionAction { branch.getPendingVariableDeclarations(); dumpBranch(expressionText, caseValues, bodyElements, pendingVariableDeclarations, firstBranch, - isSwitchOnString, ifStatementText); + useEquals, ifStatementText); firstBranch = false; } }