From 13d8b10be01f6c279d77cac221a45027d532164a Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Thu, 4 Mar 2021 15:01:04 +0300 Subject: [PATCH] Extract some cone type utils properties to reuse them in visualizer --- .../src/org/jetbrains/kotlin/fir/FirRenderer.kt | 8 -------- .../org/jetbrains/kotlin/fir/types/FirTypeUtils.kt | 14 +++++++++++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index 8ba30e0a084..a1c8577f85f 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -977,14 +977,6 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM print("|") } - private val FirResolvedTypeRef.functionTypeKind: FunctionClassKind? - get() { - val classId = (type as? ConeClassLikeType)?.lookupTag?.classId ?: return null - return FunctionClassKind.getFunctionalClassKind( - classId.shortClassName.asString(), classId.packageFqName - ) - } - override fun visitUserTypeRef(userTypeRef: FirUserTypeRef) { userTypeRef.annotations.renderAnnotations() if (userTypeRef.customRenderer) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt index 96dc289ab49..576ddb5cabd 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/FirTypeUtils.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.types +import org.jetbrains.kotlin.builtins.functions.FunctionClassKind import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.symbols.StandardClassIds @@ -168,4 +169,15 @@ val ConeKotlinType.canBeNull: Boolean is ConeIntersectionType -> intersectedTypes.any { it.canBeNull } else -> isNullable } - } \ No newline at end of file + } + +val ConeKotlinType?.functionTypeKind: FunctionClassKind? + get() { + val classId = (this as? ConeClassLikeType)?.lookupTag?.classId ?: return null + return FunctionClassKind.getFunctionalClassKind( + classId.shortClassName.asString(), classId.packageFqName + ) + } + +val FirResolvedTypeRef.functionTypeKind: FunctionClassKind? + get() = type.functionTypeKind \ No newline at end of file