generate "constant".equals(variable) code when converting switch to if (IDEA-157516)

This commit is contained in:
Bas Leijdekkers
2017-07-24 19:15:14 +02:00
parent 1e572ada7c
commit aa515b08a1
4 changed files with 26 additions and 5 deletions

View File

@@ -265,12 +265,11 @@ public class ConvertSwitchToIfIntention implements IntentionAction {
out.append("||");
}
firstCaseValue = false;
out.append(expressionText);
if (useEquals) {
out.append(".equals(").append(caseValue).append(')');
out.append(caseValue).append(".equals(").append(expressionText).append(')');
}
else {
out.append("==").append(caseValue);
out.append(expressionText).append("==").append(caseValue);
}
}
out.append(')');

View File

@@ -4,8 +4,8 @@ abstract class Test {
void foo() {
Class<?> i = getObject().getClass();
if (i.equals(RuntimeException.class)) {
} else if (i.equals(IOException.class)) {
if (RuntimeException.class.equals(i)) {
} else if (IOException.class.equals(i)) {
}
}
}

View File

@@ -0,0 +1,9 @@
// "Replace 'switch' with 'if'" "true"
class X {
public void doSomething( String value) {
if ("case1".equals(value)) {
} else if ("case2".equals(value)) {
} else {
}
}
}

View File

@@ -0,0 +1,13 @@
// "Replace 'switch' with 'if'" "true"
class X {
public void doSomething( String value) {
switch<caret> ( value ) {
case "case1":
break;
case "case2":
break;
default:
break;
}
}
}