Forbid ExtensionFunctionType on functional types without parameters

#KT-43527 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-01-11 16:42:35 +03:00
parent beb2957726
commit d0fa3eb1d3
14 changed files with 86 additions and 13 deletions
@@ -373,17 +373,21 @@ internal class DescriptorRendererImpl(
append("(")
val parameterTypes = type.getValueParameterTypesFromFunctionType()
for ((index, typeProjection) in parameterTypes.withIndex()) {
if (index > 0) append(", ")
if (type.isBuiltinExtensionFunctionalType && type.arguments.size <= 1) {
append("???")
} else {
val parameterTypes = type.getValueParameterTypesFromFunctionType()
for ((index, typeProjection) in parameterTypes.withIndex()) {
if (index > 0) append(", ")
val name = if (parameterNamesInFunctionalTypes) typeProjection.type.extractParameterNameFromFunctionTypeArgument() else null
if (name != null) {
append(renderName(name, false))
append(": ")
val name = if (parameterNamesInFunctionalTypes) typeProjection.type.extractParameterNameFromFunctionTypeArgument() else null
if (name != null) {
append(renderName(name, false))
append(": ")
}
append(renderTypeProjection(typeProjection))
}
append(renderTypeProjection(typeProjection))
}
append(") ").append(arrow()).append(" ")