Skip to content

Commit d9f535e

Browse files
authored
UnnecessaryParentheses must not remove parentheses around chained switch statement (#6156)
Fixes openrewrite/rewrite-static-analysis#534
1 parent 748bb9b commit d9f535e

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

rewrite-java-test/src/test/java/org/openrewrite/java/cleanup/UnnecessaryParenthesesTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,4 +1141,22 @@ void f(Object x) {
11411141
);
11421142
}
11431143
}
1144+
1145+
@Issue("https://github.com/openrewrite/rewrite-static-analysis/issues/534")
1146+
@Test
1147+
void doNotUnwrapSwitchWithMethodCall() {
1148+
rewriteRun(
1149+
java(
1150+
"""
1151+
class Foo {
1152+
int foo(int i) {
1153+
return (switch(i) {
1154+
default -> "foo";
1155+
}).length();
1156+
}
1157+
}
1158+
"""
1159+
)
1160+
);
1161+
}
11441162
}

rewrite-java/src/main/java/org/openrewrite/java/cleanup/UnnecessaryParenthesesVisitor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,8 @@ public J visitMethodInvocation(J.MethodInvocation method, P p) {
225225
if (parentheses.getTree() instanceof J.Assignment ||
226226
parentheses.getTree() instanceof J.Binary ||
227227
parentheses.getTree() instanceof J.Ternary ||
228-
parentheses.getTree() instanceof J.TypeCast) {
228+
parentheses.getTree() instanceof J.TypeCast ||
229+
parentheses.getTree() instanceof J.SwitchExpression) {
229230
return mi;
230231
}
231232
Expression tree = (Expression) parentheses.getTree();

0 commit comments

Comments
 (0)