[VISUALIZER] Fix class literals rendering

This commit is contained in:
Ivan Kylchik
2021-02-19 19:59:54 +03:00
committed by TeamCityServer
parent fb654ce09b
commit c94a4e7baf
3 changed files with 21 additions and 2 deletions
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.declaresOrInheritsDefaultValu
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.expressions.DoubleColonLHS
import java.util.*
class PsiVisualizer(private val file: KtFile, analysisResult: AnalysisResult) : BaseRenderer() {
@@ -225,6 +226,13 @@ class PsiVisualizer(private val file: KtFile, analysisResult: AnalysisResult) :
}
}
}
override fun visitClassLiteralExpression(expression: KtClassLiteralExpression) {
val doubleColonLhs = bindingContext[DOUBLE_COLON_LHS, expression.receiverExpression]
doubleColonLhs?.takeIf { it is DoubleColonLHS.Type }?.let {
addAnnotation(descriptorRenderer.render(it.type.constructor.declarationDescriptor!!), expression)
} ?: super.visitClassLiteralExpression(expression)
}
}
inner class PsiDescriptorRenderer(