Commit a3d37de
authored
Preserve parentheses around unary operators in method invocation select (#6663)
* Preserve parentheses around unary operators in method invocation select
When the select expression of a method invocation is a parenthesized unary
operator like (++i).toString(), the parentheses are required. Without them,
++i.toString() is a syntax error because the . operator has higher precedence
than ++.
The fix adds J.Unary to the list of expression types that should retain their
parentheses in visitMethodInvocation, alongside Assignment, Binary, Ternary,
TypeCast, and SwitchExpression.
Fixes moderneinc/customer-requests#1790
* Add tests for unwrapping unary operators in assignment and argument contexts
Adds tests to verify that unnecessary parentheses around unary operators
(++i, i++, --i, i--) are correctly removed when they appear in:
- Variable initializers: int x = (++i) → int x = ++i
- Method arguments: println((++i)) → println(++i)
These complement the methodInvocationSelectUnary test which verifies that
parentheses are preserved when required (i.e., (++i).toString()).1 parent 7b6d68b commit a3d37de
File tree
2 files changed
+107
-1
lines changed- rewrite-java-test/src/test/java/org/openrewrite/java/cleanup
- rewrite-java/src/main/java/org/openrewrite/java/cleanup
2 files changed
+107
-1
lines changedLines changed: 105 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
932 | 932 | | |
933 | 933 | | |
934 | 934 | | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
935 | 992 | | |
936 | 993 | | |
937 | 994 | | |
| |||
1140 | 1197 | | |
1141 | 1198 | | |
1142 | 1199 | | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
1143 | 1248 | | |
1144 | 1249 | | |
1145 | 1250 | | |
| |||
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
229 | | - | |
| 229 | + | |
| 230 | + | |
230 | 231 | | |
231 | 232 | | |
232 | 233 | | |
| |||
0 commit comments