diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSpecificTypeResolverTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSpecificTypeResolverTransformer.kt index b3d3c7ac40d..dfbc7831819 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSpecificTypeResolverTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSpecificTypeResolverTransformer.kt @@ -21,7 +21,7 @@ class FirSpecificTypeResolverTransformer( ) : FirAbstractTreeTransformer(phase = FirResolvePhase.SUPER_TYPES) { override fun transformTypeRef(typeRef: FirTypeRef, data: Nothing?): CompositeTransformResult { val typeResolver = FirTypeResolver.getInstance(session) - typeRef.transformChildren(FirSpecificTypeResolverTransformer(towerScope, session), null) + typeRef.transformChildren(this, null) return transformType(typeRef, typeResolver.resolveType(typeRef, towerScope)) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt index 0c46c893ecb..51d6f1881d8 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt @@ -16,17 +16,20 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.compose -open class FirTypeResolveTransformer : FirAbstractTreeTransformerWithSuperTypes( +class FirTypeResolveTransformer : FirAbstractTreeTransformerWithSuperTypes( phase = FirResolvePhase.TYPES, reversedScopePriority = true ) { override lateinit var session: FirSession + private lateinit var typeResolverTransformer: FirSpecificTypeResolverTransformer + override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult { session = file.session val scopeSession = ScopeSession() return withScopeCleanup { towerScope.addImportingScopes(file, session, scopeSession) + typeResolverTransformer = FirSpecificTypeResolverTransformer(towerScope, session) transformElement(file, data) } } @@ -77,7 +80,7 @@ open class FirTypeResolveTransformer : FirAbstractTreeTransformerWithSuperTypes( } override fun transformTypeRef(typeRef: FirTypeRef, data: Nothing?): CompositeTransformResult { - return FirSpecificTypeResolverTransformer(towerScope, session).transformTypeRef(typeRef, data) + return typeResolverTransformer.transformTypeRef(typeRef, data) } override fun transformValueParameter(valueParameter: FirValueParameter, data: Nothing?): CompositeTransformResult {