Render stub types properly

This commit is contained in:
Victor Petukhov
2021-04-27 13:57:46 +03:00
parent af12b2fdf0
commit 26b8e86fe1
8 changed files with 104 additions and 10 deletions
@@ -236,19 +236,21 @@ internal class DescriptorRendererImpl(
private fun StringBuilder.renderDefaultType(type: KotlinType) {
this.renderAnnotations(type)
if (type.isError) {
if (type is UnresolvedType && presentableUnresolvedTypes) {
append(type.presentableName)
} else {
if (type is ErrorType && !informativeErrorType) {
when {
type.isError -> {
if (type is UnresolvedType && presentableUnresolvedTypes) {
append(type.presentableName)
} else {
append(type.constructor.toString()) // Debug name of an error type is more informative
if (type is ErrorType && !informativeErrorType) {
append(type.presentableName)
} else {
append(type.constructor.toString()) // Debug name of an error type is more informative
}
}
append(renderTypeArguments(type.arguments))
}
append(renderTypeArguments(type.arguments))
} else {
renderTypeConstructorAndArguments(type)
type is StubType -> append(type.originalTypeVariable.toString())
else -> renderTypeConstructorAndArguments(type)
}
if (type.isMarkedNullable) {
@@ -36,7 +36,7 @@ class StubTypeForProvideDelegateReceiver(
}
abstract class AbstractStubType(
protected val originalTypeVariable: TypeConstructor,
val originalTypeVariable: TypeConstructor,
override val isMarkedNullable: Boolean,
override val constructor: TypeConstructor,
override val memberScope: MemberScope