Render captured type parameters in verbose mode
This commit is contained in:
@@ -574,14 +574,7 @@ internal class DescriptorRendererImpl(
|
||||
|
||||
if (!typeParameters.isEmpty()) {
|
||||
builder.append(lt())
|
||||
val iterator = typeParameters.iterator()
|
||||
while (iterator.hasNext()) {
|
||||
val typeParameterDescriptor = iterator.next()
|
||||
renderTypeParameter(typeParameterDescriptor, builder, false)
|
||||
if (iterator.hasNext()) {
|
||||
builder.append(", ")
|
||||
}
|
||||
}
|
||||
renderTypeParameterList(builder, typeParameters)
|
||||
builder.append(gt())
|
||||
if (withSpace) {
|
||||
builder.append(" ")
|
||||
@@ -589,6 +582,17 @@ internal class DescriptorRendererImpl(
|
||||
}
|
||||
}
|
||||
|
||||
private fun renderTypeParameterList(builder: StringBuilder, typeParameters: List<TypeParameterDescriptor>) {
|
||||
val iterator = typeParameters.iterator()
|
||||
while (iterator.hasNext()) {
|
||||
val typeParameterDescriptor = iterator.next()
|
||||
renderTypeParameter(typeParameterDescriptor, builder, false)
|
||||
if (iterator.hasNext()) {
|
||||
builder.append(", ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* FUNCTIONS */
|
||||
private fun renderFunction(function: FunctionDescriptor, builder: StringBuilder) {
|
||||
if (!startFromName) {
|
||||
@@ -825,6 +829,14 @@ internal class DescriptorRendererImpl(
|
||||
val typeParameters = klass.declaredTypeParameters
|
||||
renderTypeParameters(typeParameters, builder, false)
|
||||
|
||||
if (verbose && klass.isInner && klass.typeConstructor.parameters.size > typeParameters.size) {
|
||||
builder.append(" /*captured type parameters: ")
|
||||
val constructorTypeParameters = klass.typeConstructor.parameters
|
||||
renderTypeParameterList(
|
||||
builder, constructorTypeParameters.subList(typeParameters.size, constructorTypeParameters.size))
|
||||
builder.append("*/")
|
||||
}
|
||||
|
||||
if (!klass.kind.isSingleton && classWithPrimaryConstructor) {
|
||||
val primaryConstructor = klass.unsubstitutedPrimaryConstructor
|
||||
if (primaryConstructor != null) {
|
||||
|
||||
Reference in New Issue
Block a user