diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt index 7576b01936b..54122356f42 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt @@ -9,10 +9,7 @@ import com.intellij.openapi.project.Project import com.intellij.psi.JavaPsiFacade import com.intellij.psi.search.GlobalSearchScope import com.intellij.util.containers.ContainerUtil -import org.jetbrains.kotlin.analysis.api.KtStarProjectionTypeArgument -import org.jetbrains.kotlin.analysis.api.KtTypeArgument -import org.jetbrains.kotlin.analysis.api.KtTypeArgumentWithVariance -import org.jetbrains.kotlin.analysis.api.ValidityTokenOwner +import org.jetbrains.kotlin.analysis.api.* import org.jetbrains.kotlin.analysis.api.fir.symbols.* import org.jetbrains.kotlin.analysis.api.fir.types.* import org.jetbrains.kotlin.analysis.api.fir.utils.weakRef @@ -63,7 +60,6 @@ internal class KtSymbolByFirBuilder private constructor( private val extensionReceiverSymbolsCache: BuilderCache, KtSymbol>, private val filesCache: BuilderCache, private val backingFieldCache: BuilderCache, - private val typesCache: BuilderCache, ) : ValidityTokenOwner { private val resolveState by weakRef(resolveState) @@ -88,7 +84,6 @@ internal class KtSymbolByFirBuilder private constructor( withReadOnlyCaching = false, symbolsCache = BuilderCache(), extensionReceiverSymbolsCache = BuilderCache(), - typesCache = BuilderCache(), backingFieldCache = BuilderCache(), filesCache = BuilderCache(), ) @@ -102,7 +97,6 @@ internal class KtSymbolByFirBuilder private constructor( withReadOnlyCaching = true, symbolsCache = symbolsCache.createReadOnlyCopy(), extensionReceiverSymbolsCache = extensionReceiverSymbolsCache.createReadOnlyCopy(), - typesCache = typesCache.createReadOnlyCopy(), filesCache = filesCache.createReadOnlyCopy(), backingFieldCache = backingFieldCache.createReadOnlyCopy(), ) @@ -427,7 +421,7 @@ internal class KtSymbolByFirBuilder private constructor( inner class TypeBuilder { fun buildKtType(coneType: ConeKotlinType): KtType { - return typesCache.cache(coneType) { + return withValidityAssertion { when (coneType) { is ConeClassLikeTypeImpl -> { if (hasFunctionalClassId(coneType)) KtFirFunctionalType(coneType, token, this@KtSymbolByFirBuilder) diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.txt index e24f7a220cc..c06dfea50b6 100644 --- a/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.txt +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.txt @@ -149,9 +149,9 @@ KtFunctionSymbol: origin: SOURCE receiverType: null returnType: [ - Anno2() + Anno3() psi: KtAnnotationEntry - ] @R|Anno2|() I + ] @R|Anno3|() I symbolKind: CLASS_MEMBER typeParameters: [] valueParameters: [ @@ -182,9 +182,9 @@ KtKotlinPropertySymbol: origin: SOURCE receiverType: null returnType: [ - Anno2() + Anno4() psi: KtAnnotationEntry - ] @R|Anno2|() I + ] @R|Anno4|() I setter: null symbolKind: CLASS_MEMBER typeParameters: [] @@ -211,9 +211,9 @@ KtNamedClassOrObjectSymbol: origin: SOURCE superTypes: [ [ - Anno2() + Anno1() psi: KtAnnotationEntry - ] @R|Anno2|() I + ] @R|Anno1|() I ] symbolKind: TOP_LEVEL typeParameters: []