From 13d91837beca50ea54af31da26f3ce8c925cd2e9 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 3 Jun 2021 11:46:11 +0300 Subject: [PATCH] FIR: cache functional type symbols in type resolver --- .../fir/resolve/providers/impl/FirTypeResolverImpl.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt index 58fc21583e0..7d14190ab29 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt @@ -161,8 +161,13 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver() { StandardNames.getFunctionClassId(typeRef.parametersCount) } val attributes = typeRef.annotations.computeTypeAttributes() + val symbol = resolveBuiltInQualified(classId, session) return ConeClassLikeTypeImpl( - resolveBuiltInQualified(classId, session).toLookupTag(), + symbol.toLookupTag().also { + if (it is ConeClassLikeLookupTagImpl) { + it.bindSymbolToLookupTag(session, symbol) + } + }, parameters.toTypedArray(), typeRef.isMarkedNullable, attributes