aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/java/com/facebook
diff options
context:
space:
mode:
authorOmer Strulovich <ostrulovich@fb.com>2022-05-31 12:30:03 -0700
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>2022-05-31 12:30:03 -0700
commit24e6942904c4575fb52f6331e526922a48cd9d2f (patch)
treeed00440bad53087d85057288fa9fe3fc63286767 /core/src/main/java/com/facebook
parentc0e6243c33a1b9b4afbf9160ee3670a3387f0314 (diff)
downloadktfmt-24e6942904c4575fb52f6331e526922a48cd9d2f.tar.gz
Fix breaking before is keyword causing illegal code
Summary: This should resolve https://github.com/facebookincubator/ktfmt/issues/315 Tried to avoid changing code in too many places by looking at the parent. Reviewed By: davidtorosyan Differential Revision: D36783125 fbshipit-source-id: 54fcbdc7372f9147925b2746aa73e61fc06346d3
Diffstat (limited to 'core/src/main/java/com/facebook')
-rw-r--r--core/src/main/java/com/facebook/ktfmt/format/KotlinInputAstVisitor.kt10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/src/main/java/com/facebook/ktfmt/format/KotlinInputAstVisitor.kt b/core/src/main/java/com/facebook/ktfmt/format/KotlinInputAstVisitor.kt
index cfa58c3..4a6aae4 100644
--- a/core/src/main/java/com/facebook/ktfmt/format/KotlinInputAstVisitor.kt
+++ b/core/src/main/java/com/facebook/ktfmt/format/KotlinInputAstVisitor.kt
@@ -51,6 +51,7 @@ import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtCollectionLiteralExpression
import org.jetbrains.kotlin.psi.KtConstantExpression
import org.jetbrains.kotlin.psi.KtConstructorDelegationCall
+import org.jetbrains.kotlin.psi.KtContainerNode
import org.jetbrains.kotlin.psi.KtContinueExpression
import org.jetbrains.kotlin.psi.KtDelegatedSuperTypeEntry
import org.jetbrains.kotlin.psi.KtDestructuringDeclaration
@@ -2169,7 +2170,14 @@ class KotlinInputAstVisitor(
if (openGroupBeforeLeft) builder.open(ZERO)
visit(expression.leftHandSide)
if (!openGroupBeforeLeft) builder.open(ZERO)
- builder.breakOp(Doc.FillMode.UNIFIED, " ", expressionBreakIndent)
+ val parent = expression.parent
+ if (parent is KtValueArgument ||
+ parent is KtParenthesizedExpression ||
+ parent is KtContainerNode) {
+ builder.breakOp(Doc.FillMode.UNIFIED, " ", expressionBreakIndent)
+ } else {
+ builder.space()
+ }
visit(expression.operationReference)
builder.breakOp(Doc.FillMode.INDEPENDENT, " ", expressionBreakIndent)
builder.block(expressionBreakIndent) { visit(expression.typeReference) }