diff options
author | Omer Strulovich <ostrulovich@fb.com> | 2022-05-31 12:30:03 -0700 |
---|---|---|
committer | Facebook GitHub Bot <facebook-github-bot@users.noreply.github.com> | 2022-05-31 12:30:03 -0700 |
commit | 24e6942904c4575fb52f6331e526922a48cd9d2f (patch) | |
tree | ed00440bad53087d85057288fa9fe3fc63286767 /core/src/main/java/com/facebook | |
parent | c0e6243c33a1b9b4afbf9160ee3670a3387f0314 (diff) | |
download | ktfmt-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.kt | 10 |
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) } |