diff --git a/packages/prettier-plugin-java/src/printers/expressions.ts b/packages/prettier-plugin-java/src/printers/expressions.ts index be672343..6f1eeba0 100644 --- a/packages/prettier-plugin-java/src/printers/expressions.ts +++ b/packages/prettier-plugin-java/src/printers/expressions.ts @@ -684,7 +684,10 @@ function binary( } } level.push(operands.shift()!); - if (!levelOperator || !isAssignmentOperator(levelOperator)) { + if ( + !levelOperator || + (!isAssignmentOperator(levelOperator) && levelOperator !== "instanceof") + ) { return group(level); } if (!isRoot || hasNonAssignmentOperators) { diff --git a/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-end/_input.java b/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-end/_input.java index 94fc575a..b12cfedb 100644 --- a/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-end/_input.java +++ b/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-end/_input.java @@ -132,4 +132,17 @@ void parentheses() { if (aaaaaaaaaa + bbbbbbbbbb == cccccccccc + dddddddddd && eeeeeeeeee + ffffffffff == gggggggggg + hhhhhhhhhh || iiiiiiiiii + jjjjjjjjjj == kkkkkkkkkk + llllllllll && mmmmmmmmmm + nnnnnnnnnn == oooooooooo + pppppppppp || qqqqqqqqqq + rrrrrrrrrr == ssssssssss + tttttttttt && uuuuuuuuuu + vvvvvvvvvv == wwwwwwwwww + xxxxxxxxxxx) {} } + + void instanceOf() { + var a = + a && + Foo.get(longlinelonglinelonglinelonglinelongline) instanceof + NumberNumberNumberNumber n && + n.foo(); + + var a = + Foo.get(longlinelonglinelonglinelonglinelongline) instanceof + NumberNumberNumberNumber n && + n.foo(); + } } diff --git a/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-end/_output.java b/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-end/_output.java index 6877a4b9..17e854fa 100644 --- a/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-end/_output.java +++ b/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-end/_output.java @@ -252,4 +252,17 @@ void parentheses() { uuuuuuuuuu + vvvvvvvvvv == wwwwwwwwww + xxxxxxxxxxx) ) {} } + + void instanceOf() { + var a = + a && + Foo.get(longlinelonglinelonglinelonglinelongline) instanceof + NumberNumberNumberNumber n && + n.foo(); + + var a = + Foo.get(longlinelonglinelonglinelonglinelongline) instanceof + NumberNumberNumberNumber n && + n.foo(); + } } diff --git a/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-start/_input.java b/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-start/_input.java index 94fc575a..b12cfedb 100644 --- a/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-start/_input.java +++ b/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-start/_input.java @@ -132,4 +132,17 @@ void parentheses() { if (aaaaaaaaaa + bbbbbbbbbb == cccccccccc + dddddddddd && eeeeeeeeee + ffffffffff == gggggggggg + hhhhhhhhhh || iiiiiiiiii + jjjjjjjjjj == kkkkkkkkkk + llllllllll && mmmmmmmmmm + nnnnnnnnnn == oooooooooo + pppppppppp || qqqqqqqqqq + rrrrrrrrrr == ssssssssss + tttttttttt && uuuuuuuuuu + vvvvvvvvvv == wwwwwwwwww + xxxxxxxxxxx) {} } + + void instanceOf() { + var a = + a && + Foo.get(longlinelonglinelonglinelonglinelongline) instanceof + NumberNumberNumberNumber n && + n.foo(); + + var a = + Foo.get(longlinelonglinelonglinelonglinelongline) instanceof + NumberNumberNumberNumber n && + n.foo(); + } } diff --git a/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-start/_output.java b/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-start/_output.java index 43699f12..fd7ccbd0 100644 --- a/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-start/_output.java +++ b/packages/prettier-plugin-java/test/unit-test/binary_expressions/operator-position-start/_output.java @@ -245,4 +245,17 @@ void parentheses() { && uuuuuuuuuu + vvvvvvvvvv == wwwwwwwwww + xxxxxxxxxxx) ) {} } + + void instanceOf() { + var a = + a + && Foo.get(longlinelonglinelonglinelonglinelongline) + instanceof NumberNumberNumberNumber n + && n.foo(); + + var a = + Foo.get(longlinelonglinelonglinelonglinelongline) + instanceof NumberNumberNumberNumber n + && n.foo(); + } }