visitFormals takes KtParameterList, so it can handle trailing commas in the future
Reviewed By: strulovich
Differential Revision: D22703711
fbshipit-source-id: 87f1bfc4a6748603aa3d26615096f819edf094f9
diff --git a/core/src/main/java/com/facebook/ktfmt/KotlinInputAstVisitor.kt b/core/src/main/java/com/facebook/ktfmt/KotlinInputAstVisitor.kt
index 542f79c..f1362c1 100644
--- a/core/src/main/java/com/facebook/ktfmt/KotlinInputAstVisitor.kt
+++ b/core/src/main/java/com/facebook/ktfmt/KotlinInputAstVisitor.kt
@@ -77,6 +77,7 @@
import org.jetbrains.kotlin.psi.KtNullableType
import org.jetbrains.kotlin.psi.KtPackageDirective
import org.jetbrains.kotlin.psi.KtParameter
+import org.jetbrains.kotlin.psi.KtParameterList
import org.jetbrains.kotlin.psi.KtParenthesizedExpression
import org.jetbrains.kotlin.psi.KtPrefixExpression
import org.jetbrains.kotlin.psi.KtPrimaryConstructor
@@ -146,7 +147,7 @@
function.receiverTypeReference,
function.nameIdentifier?.text,
true,
- function.valueParameters,
+ function.valueParameterList,
function.typeConstraintList,
function.bodyBlockExpression,
function.bodyExpression,
@@ -242,7 +243,7 @@
receiverTypeReference: KtTypeReference?,
name: String?,
emitParenthesis: Boolean,
- parameters: List<KtParameter>?,
+ parameterList: KtParameterList?,
typeConstraintList: KtTypeConstraintList?,
bodyBlockExpression: KtBlockExpression?,
nonBlockBodyExpressions: PsiElement?,
@@ -273,12 +274,12 @@
builder.token("(")
}
builder.block(ZERO) {
- if (parameters != null && parameters.isNotEmpty()) {
+ if (parameterList != null && parameterList.parameters.isNotEmpty()) {
builder.breakOp(Doc.FillMode.UNIFIED, "", expressionBreakIndent)
- builder.block(expressionBreakIndent) { visitFormals(parameters) }
+ builder.block(expressionBreakIndent) { visitFormals(parameterList) }
}
if (emitParenthesis) {
- if (parameters != null && parameters.isNotEmpty()) {
+ if (parameterList != null && parameterList.parameters.isNotEmpty()) {
builder.breakOp(Doc.FillMode.UNIFIED, "", ZERO)
}
builder.token(")")
@@ -286,7 +287,7 @@
if (type != null) {
builder.block(ZERO) {
builder.token(":")
- if (parameters.isNullOrEmpty()) {
+ if (parameterList?.parameters.isNullOrEmpty()) {
builder.breakOp(Doc.FillMode.INDEPENDENT, " ", expressionBreakIndent)
} else {
builder.space()
@@ -318,7 +319,8 @@
}
}
- private fun visitFormals(parameters: List<KtParameter>) {
+ private fun visitFormals(parameterList: KtParameterList) {
+ val parameters = parameterList.parameters
if (parameters.isEmpty()) {
return
}
@@ -386,7 +388,7 @@
null,
null,
accessor.bodyExpression != null || accessor.bodyBlockExpression != null,
- accessor.parameterList?.parameters,
+ accessor.parameterList,
null,
accessor.bodyBlockExpression,
accessor.bodyExpression,
@@ -950,9 +952,10 @@
}
builder.block(ZERO) {
builder.token("(")
- if (constructor.valueParameters.isNotEmpty()) {
+ val parameterList = constructor.valueParameterList
+ if (parameterList != null && parameterList.parameters.isNotEmpty()) {
builder.breakOp(Doc.FillMode.UNIFIED, "", expressionBreakIndent)
- builder.block(expressionBreakIndent) { visitFormals(constructor.valueParameters) }
+ builder.block(expressionBreakIndent) { visitFormals(parameterList) }
}
val ownerClassOrObject = constructor.parent
if (ownerClassOrObject is KtClassOrObject &&
@@ -978,8 +981,9 @@
builder.token("constructor")
builder.token("(")
builder.block(expressionBreakIndent) {
- if (constructor.valueParameters.isNotEmpty()) {
- visitFormals(constructor.valueParameters)
+ val parameterList = constructor.valueParameterList
+ if (parameterList != null && parameterList.parameters.isNotEmpty()) {
+ visitFormals(parameterList)
}
}
if (!delegationCall.isImplicit || bodyExpression != null) {