From b1b9e7c5cf2ac32d181a636c79fdfbd5ecc0dac0 Mon Sep 17 00:00:00 2001 From: Jordan Kiesel Date: Thu, 20 Jul 2023 00:07:41 -0600 Subject: [PATCH] fix(printer): break and indent binary expression with cast properly --- packages/prettier-plugin-java/src/printers/classes.ts | 8 +++++--- .../test/unit-test/binary_expressions/_input.java | 4 ++++ .../test/unit-test/binary_expressions/_output.java | 5 +++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/prettier-plugin-java/src/printers/classes.ts b/packages/prettier-plugin-java/src/printers/classes.ts index 20162bd0..6ea8792d 100644 --- a/packages/prettier-plugin-java/src/printers/classes.ts +++ b/packages/prettier-plugin-java/src/printers/classes.ts @@ -345,15 +345,17 @@ export class ClassesPrettierVisitor extends BaseCstPrettierPrinter { ctx.variableInitializer![0].children.expression![0].children .ternaryExpression !== undefined ) { - const firstPrimary = + const unaryExpressions = ctx.variableInitializer![0].children.expression![0].children .ternaryExpression[0].children.binaryExpression[0].children - .unaryExpression[0].children.primary[0]; + .unaryExpression; + const firstPrimary = unaryExpressions[0].children.primary[0]; // Cast Expression if ( firstPrimary.children.primaryPrefix[0].children.castExpression !== - undefined + undefined && + unaryExpressions.length === 1 ) { const groupId = Symbol("assignment"); return group([ diff --git a/packages/prettier-plugin-java/test/unit-test/binary_expressions/_input.java b/packages/prettier-plugin-java/test/unit-test/binary_expressions/_input.java index cc417730..acd0bf7c 100644 --- a/packages/prettier-plugin-java/test/unit-test/binary_expressions/_input.java +++ b/packages/prettier-plugin-java/test/unit-test/binary_expressions/_input.java @@ -58,4 +58,8 @@ public void method() { new Foo(stuff, thing, "auaaaaaaaaa some very long stuff", "some more").bar(10); foo(stuff, thing, "some very longuuuuuuuuuuuuuu stuff", "some more").bar(10); } + + public void binaryExpressionWithCast() { + double availability = (double) successfulCount / (successfulCount + failureCount); + } } diff --git a/packages/prettier-plugin-java/test/unit-test/binary_expressions/_output.java b/packages/prettier-plugin-java/test/unit-test/binary_expressions/_output.java index fa33da08..1c2c35cb 100644 --- a/packages/prettier-plugin-java/test/unit-test/binary_expressions/_output.java +++ b/packages/prettier-plugin-java/test/unit-test/binary_expressions/_output.java @@ -82,4 +82,9 @@ public void method() { foo(stuff, thing, "some very longuuuuuuuuuuuuuu stuff", "some more") .bar(10); } + + public void binaryExpressionWithCast() { + double availability = + (double) successfulCount / (successfulCount + failureCount); + } }