diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt index 3881bba30e7..5924f4eb4d0 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -585,15 +585,11 @@ internal class DescriptorRendererImpl( val upperBoundStrings = ArrayList(0) for (typeParameter in typeParameters) { - if (typeParameter.getUpperBounds().size() > 1) { - for ((i, upperBound) in typeParameter.getUpperBounds().withIndex()) { - // first parameter is rendered by renderTypeParameter: - if (i > 0) { - upperBoundStrings.add(renderName(typeParameter.getName()) + " : " + escape(renderType(upperBound))) - } - } - } + typeParameter.getUpperBounds() + .drop(1) // first parameter is rendered by renderTypeParameter + .mapTo(upperBoundStrings) { renderName(typeParameter.getName()) + " : " + escape(renderType(it)) } } + if (!upperBoundStrings.isEmpty()) { builder.append(" ").append(renderKeyword("where")).append(" ") upperBoundStrings.joinTo(builder, ", ")