[FIR] Move some components implementations from :entrypoint to appropriate modules
This commit is contained in:
committed by
teamcityserver
parent
173e194dac
commit
c50fe4e399
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.fir.session
|
package org.jetbrains.kotlin.fir.analysis.jvm
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
||||||
+2
-1
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.*
|
|||||||
import org.jetbrains.kotlin.fir.analysis.CheckersComponent
|
import org.jetbrains.kotlin.fir.analysis.CheckersComponent
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirNameConflictsTracker
|
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirNameConflictsTracker
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.jvm.FirJvmOverridesBackwardCompatibilityHelper
|
||||||
import org.jetbrains.kotlin.fir.caches.FirCachesFactory
|
import org.jetbrains.kotlin.fir.caches.FirCachesFactory
|
||||||
import org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCachesFactory
|
import org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCachesFactory
|
||||||
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
|
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
|
||||||
@@ -76,6 +77,7 @@ fun FirSession.registerResolveComponents(lookupTracker: LookupTracker? = null) {
|
|||||||
register(FirTypeResolver::class, FirTypeResolverImpl(this))
|
register(FirTypeResolver::class, FirTypeResolverImpl(this))
|
||||||
register(CheckersComponent::class, CheckersComponent())
|
register(CheckersComponent::class, CheckersComponent())
|
||||||
register(FirNameConflictsTrackerComponent::class, FirNameConflictsTracker())
|
register(FirNameConflictsTrackerComponent::class, FirNameConflictsTracker())
|
||||||
|
register(FirModuleVisibilityChecker::class, FirModuleVisibilityChecker.Standard(this))
|
||||||
if (lookupTracker != null) {
|
if (lookupTracker != null) {
|
||||||
val firFileToPath: (FirSourceElement) -> String = {
|
val firFileToPath: (FirSourceElement) -> String = {
|
||||||
val psiSource = (it as? FirPsiSourceElement) ?: TODO("Not implemented for non-FirPsiSourceElement")
|
val psiSource = (it as? FirPsiSourceElement) ?: TODO("Not implemented for non-FirPsiSourceElement")
|
||||||
@@ -94,7 +96,6 @@ fun FirSession.registerResolveComponents(lookupTracker: LookupTracker? = null) {
|
|||||||
@OptIn(SessionConfiguration::class)
|
@OptIn(SessionConfiguration::class)
|
||||||
fun FirSession.registerJavaSpecificResolveComponents() {
|
fun FirSession.registerJavaSpecificResolveComponents() {
|
||||||
register(FirVisibilityChecker::class, FirJavaVisibilityChecker)
|
register(FirVisibilityChecker::class, FirJavaVisibilityChecker)
|
||||||
register(FirModuleVisibilityChecker::class, FirJvmModuleVisibilityChecker(this))
|
|
||||||
register(ConeCallConflictResolverFactory::class, JvmCallConflictResolverFactory)
|
register(ConeCallConflictResolverFactory::class, JvmCallConflictResolverFactory)
|
||||||
register(FirPlatformClassMapper::class, FirJavaClassMapper(this))
|
register(FirPlatformClassMapper::class, FirJavaClassMapper(this))
|
||||||
register(FirSyntheticNamesProvider::class, FirJavaSyntheticNamesProvider)
|
register(FirSyntheticNamesProvider::class, FirJavaSyntheticNamesProvider)
|
||||||
|
|||||||
-20
@@ -1,20 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.fir.session
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirModuleVisibilityChecker
|
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.moduleData
|
|
||||||
|
|
||||||
class FirJvmModuleVisibilityChecker(private val session: FirSession) : FirModuleVisibilityChecker {
|
|
||||||
override fun <T> isInFriendModule(declaration: T): Boolean where T : FirMemberDeclaration, T : FirDeclaration {
|
|
||||||
val useSiteModuleData = session.moduleData
|
|
||||||
val declarationModuleData = declaration.moduleData
|
|
||||||
return useSiteModuleData == declarationModuleData || declarationModuleData in useSiteModuleData.friendDependencies
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -24,8 +24,16 @@ import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
|||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
|
||||||
interface FirModuleVisibilityChecker : FirSessionComponent {
|
abstract class FirModuleVisibilityChecker : FirSessionComponent {
|
||||||
fun <T> isInFriendModule(declaration: T): Boolean where T : FirMemberDeclaration, T : FirDeclaration
|
abstract fun <T> isInFriendModule(declaration: T): Boolean where T : FirMemberDeclaration, T : FirDeclaration
|
||||||
|
|
||||||
|
class Standard(val session: FirSession) : FirModuleVisibilityChecker() {
|
||||||
|
override fun <T> isInFriendModule(declaration: T): Boolean where T : FirMemberDeclaration, T : FirDeclaration {
|
||||||
|
val useSiteModuleData = session.moduleData
|
||||||
|
val declarationModuleData = declaration.moduleData
|
||||||
|
return useSiteModuleData == declarationModuleData || declarationModuleData in useSiteModuleData.friendDependencies
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class FirVisibilityChecker : FirSessionComponent {
|
abstract class FirVisibilityChecker : FirSessionComponent {
|
||||||
|
|||||||
Reference in New Issue
Block a user