diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt index 7630818b10c..1b968b7cd62 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt @@ -25,10 +25,12 @@ import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.utils.addToStdlib.safeAs class FirSupertypeResolverTransformer( - private val scopeSession: ScopeSession -) : FirTransformer() { + override val session: FirSession, + scopeSession: ScopeSession +) : FirAbstractPhaseTransformer(FirResolvePhase.SUPER_TYPES) { private val supertypeComputationSession = SupertypeComputationSession() + private val supertypeResolverVisitor = FirSupertypeResolverVisitor(session, supertypeComputationSession, scopeSession) private val applySupertypesTransformer = FirApplySupertypesTransformer(supertypeComputationSession) override fun transformElement(element: E, data: Nothing?): CompositeTransformResult { @@ -36,9 +38,9 @@ class FirSupertypeResolverTransformer( } override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult { - val supertypeResolverVisitor = FirSupertypeResolverVisitor(file.session, supertypeComputationSession, scopeSession) + checkSessionConsistency(file) file.accept(supertypeResolverVisitor) - supertypeComputationSession.breakLoops(file.session) + supertypeComputationSession.breakLoops(session) return file.transform(applySupertypesTransformer, null) } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt index 124ee0bd89b..94353912a93 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt @@ -24,7 +24,7 @@ fun FirResolvePhase.createTransformerByPhase(session: FirSession, scopeSession: ANNOTATIONS_FOR_PLUGINS -> FirPluginAnnotationsResolveTransformer(session, scopeSession) FIRST_PLUGIN_GENERATION -> FirFirstGenerationTransformer() IMPORTS -> FirImportResolveTransformer(session) - SUPER_TYPES -> FirSupertypeResolverTransformer(scopeSession) + SUPER_TYPES -> FirSupertypeResolverTransformer(session, scopeSession) SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer() TYPES -> FirTypeResolveTransformerAdapter(scopeSession) STATUS -> FirStatusResolveTransformerAdapter()