[FIR] Let FirTopLevelFunctionsChecker run on all platforms

Use a session component to control platform specific suppression logic.
This commit is contained in:
Kirill Rakhman
2023-04-04 10:28:20 +02:00
committed by Space Team
parent 085df96afe
commit d6e14f37a7
9 changed files with 18 additions and 45 deletions
@@ -12,6 +12,8 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirVisibilityChecker
import org.jetbrains.kotlin.fir.SessionConfiguration
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
import org.jetbrains.kotlin.fir.analysis.checkers.FirPlatformDiagnosticSuppressor
import org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsPlatformDiagnosticSuppressor
import org.jetbrains.kotlin.fir.checkers.registerJsCheckers
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
@@ -44,7 +46,7 @@ object FirJsSessionFactory : FirAbstractSessionFactory() {
null,
init,
registerExtraComponents = { session ->
session.registerJsSpecificResolveComponents()
session.registerJsSpecificComponents()
registerExtraComponents(session)
},
registerExtraCheckers = { it.registerJsCheckers() },
@@ -75,7 +77,7 @@ object FirJsSessionFactory : FirAbstractSessionFactory() {
languageVersionSettings,
extensionRegistrars,
registerExtraComponents = {
it.registerJsSpecificResolveComponents()
it.registerJsSpecificComponents()
registerExtraComponents(it)
},
createKotlinScopeProvider = { FirKotlinScopeProvider { _, declaredMemberScope, _, _, _ -> declaredMemberScope } },
@@ -92,10 +94,11 @@ object FirJsSessionFactory : FirAbstractSessionFactory() {
)
@OptIn(SessionConfiguration::class)
fun FirSession.registerJsSpecificResolveComponents() {
fun FirSession.registerJsSpecificComponents() {
register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
register(ConeCallConflictResolverFactory::class, JsCallConflictResolverFactory)
register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
register(FirOverridesBackwardCompatibilityHelper::class, FirOverridesBackwardCompatibilityHelper.Default())
register(FirPlatformDiagnosticSuppressor::class, FirJsPlatformDiagnosticSuppressor())
}
}