[FE] Refactor: provide FirExpectActualMatchingContext as session component

This will be needed in subsequent commits because context must be
accessible from `:fir:checkers` module, but it is in `:fir:resolve`

Intermediate interface `FirExpectActualMatchingContext` is needed
because `FirExpectActualResolver` relies on some FIR-specific methods,
and providing common `ExpectActualMatchingContext` interface is not
enough.

Also in `FirExpectActualMatcherTransformer` context extracted to field
to not create context for each processed element. "session" made
final to calm down warning "accessing non-final property in
constructor".

^KT-58551
This commit is contained in:
Roman Efremov
2023-06-22 15:07:09 +02:00
committed by Space Team
parent 72de540fc9
commit b1bdb619d8
5 changed files with 58 additions and 11 deletions
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.impl.FirQualifierResolverImpl
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirTypeResolverImpl
import org.jetbrains.kotlin.fir.resolve.transformers.FirDummyCompilerLazyDeclarationResolver
import org.jetbrains.kotlin.fir.resolve.transformers.PlatformSupertypeUpdater
import org.jetbrains.kotlin.fir.resolve.transformers.mpp.FirExpectActualMatchingContextImpl
import org.jetbrains.kotlin.fir.resolve.transformers.plugin.CompilerRequiredAnnotationEnhancementProvider
import org.jetbrains.kotlin.fir.scopes.FirOverrideChecker
import org.jetbrains.kotlin.fir.scopes.FirOverrideService
@@ -142,6 +143,7 @@ fun FirSession.registerResolveComponents(lookupTracker: LookupTracker? = null, e
IncrementalPassThroughEnumWhenTrackerComponent(enumWhenTracker)
)
}
register(FirExpectActualMatchingContextFactory::class, FirExpectActualMatchingContextImpl.Factory)
}
/*