From 23f1cc6b07d822a998a4afdc2882b8ba99e516ba Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 14 Oct 2020 17:10:50 +0300 Subject: [PATCH] [FIR] Get rid of ReturnTypeCalculator in ScopeSession --- .../transformers/body/resolve/FirImplicitBodyResolve.kt | 4 +--- .../kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt | 9 +++------ .../src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt | 2 -- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt index 747ff610fa2..2e784ce4cfc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt @@ -37,9 +37,7 @@ class FirImplicitTypeBodyResolveProcessor( @AdapterForResolveProcessor class FirImplicitTypeBodyResolveTransformerAdapter(session: FirSession, scopeSession: ScopeSession) : FirTransformer() { private val implicitBodyResolveComputationSession = ImplicitBodyResolveComputationSession() - private val returnTypeCalculator = ReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession).also { - scopeSession.returnTypeCalculator = it - } + private val returnTypeCalculator = ReturnTypeCalculatorWithJump(session, scopeSession, implicitBodyResolveComputationSession) private val transformer = FirImplicitAwareBodyResolveTransformer( session, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt index 0f0ee6dfdba..631f41c0be2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt @@ -119,9 +119,6 @@ class FirClassSubstitutionScope( } } - private val typeCalculator = - (scopeSession.returnTypeCalculator as ReturnTypeCalculator?) ?: ReturnTypeCalculatorForFullBodyResolve() - private fun ConeKotlinType.substitute(): ConeKotlinType? { return substitutor.substituteOrNull(this) } @@ -227,7 +224,7 @@ class FirClassSubstitutionScope( val receiverType = member.receiverTypeRef?.coneType val newReceiverType = receiverType?.substitute(substitutor) - val returnType = typeCalculator.tryCalculateReturnType(member).type + val returnType = member.returnTypeRef.coneType val newReturnType = returnType.substitute(substitutor) return SubstitutedData(newTypeParameters, newReceiverType, newReturnType, substitutor) } @@ -237,7 +234,7 @@ class FirClassSubstitutionScope( val member = original.fir if (skipPrivateMembers && member.visibility == Visibilities.Private) return original - val returnType = typeCalculator.tryCalculateReturnType(member).type + val returnType = member.returnTypeRef.coneType val newReturnType = returnType.substitute() ?: return original return createFakeOverrideField(session, member, original, newReturnType, derivedClassId) @@ -248,7 +245,7 @@ class FirClassSubstitutionScope( val member = original.fir as FirSyntheticProperty if (skipPrivateMembers && member.visibility == Visibilities.Private) return original - val returnType = typeCalculator.tryCalculateReturnType(member).type + val returnType = member.returnTypeRef.coneType val newReturnType = returnType.substitute() val newParameterTypes = member.getter.valueParameters.map { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt index e39f8b0b385..32691e98752 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt @@ -10,8 +10,6 @@ import org.jetbrains.kotlin.fir.PrivateForInline class ScopeSession { private val scopes = hashMapOf, Any>>() - var returnTypeCalculator: Any? = null - @PrivateForInline fun scopes() = scopes