FIR: Minor. Rename JavaClassConverter -> FirJavaFacade
This commit is contained in:
committed by
TeamCityServer
parent
9902d36d57
commit
54a97a860a
+3
-3
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.fir.caches.FirCachesFactory
|
|||||||
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
|
import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers
|
||||||
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
|
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
|
||||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.java.JavaClassConverter
|
import org.jetbrains.kotlin.fir.java.FirJavaFacade
|
||||||
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.java.deserialization.KotlinDeserializedJvmSymbolsProvider
|
import org.jetbrains.kotlin.fir.java.deserialization.KotlinDeserializedJvmSymbolsProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.FirDependenciesSymbolProvider
|
||||||
@@ -141,7 +141,7 @@ internal object FirIdeSessionFactory {
|
|||||||
provider.symbolProvider,
|
provider.symbolProvider,
|
||||||
JavaSymbolProvider(
|
JavaSymbolProvider(
|
||||||
this,
|
this,
|
||||||
JavaClassConverter(
|
FirJavaFacade(
|
||||||
this, moduleData, project.createJavaClassFinder(contentScope)
|
this, moduleData, project.createJavaClassFinder(contentScope)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -190,7 +190,7 @@ internal object FirIdeSessionFactory {
|
|||||||
kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped),
|
kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped),
|
||||||
packagePartProvider = project.createPackagePartProviderForLibrary(searchScope),
|
packagePartProvider = project.createPackagePartProviderForLibrary(searchScope),
|
||||||
kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(searchScope),
|
kotlinClassFinder = VirtualFileFinderFactory.getInstance(project).create(searchScope),
|
||||||
javaClassConverter = JavaClassConverter(
|
javaFacade = FirJavaFacade(
|
||||||
this@session, mainModuleData, project.createJavaClassFinder(searchScope)
|
this@session, mainModuleData, project.createJavaClassFinder(searchScope)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
+3
-3
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
|||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.java.FirJavaElementFinder
|
import org.jetbrains.kotlin.fir.java.FirJavaElementFinder
|
||||||
import org.jetbrains.kotlin.fir.java.JavaClassConverter
|
import org.jetbrains.kotlin.fir.java.FirJavaFacade
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||||
import org.jetbrains.kotlin.load.java.createJavaClassFinder
|
import org.jetbrains.kotlin.load.java.createJavaClassFinder
|
||||||
@@ -90,11 +90,11 @@ class PsiBasedProjectEnvironment(
|
|||||||
override fun getSearchScopeForProjectJavaSources(): AbstractProjectFileSearchScope =
|
override fun getSearchScopeForProjectJavaSources(): AbstractProjectFileSearchScope =
|
||||||
PsiBasedProjectFileSearchScope(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
PsiBasedProjectFileSearchScope(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
||||||
|
|
||||||
override fun getJavaClassConverter(
|
override fun getFirJavaFacade(
|
||||||
firSession: FirSession,
|
firSession: FirSession,
|
||||||
baseModuleData: FirModuleData,
|
baseModuleData: FirModuleData,
|
||||||
fileSearchScope: AbstractProjectFileSearchScope
|
fileSearchScope: AbstractProjectFileSearchScope
|
||||||
) = JavaClassConverter(firSession, baseModuleData, project.createJavaClassFinder(fileSearchScope.asPsiSearchScope()))
|
) = FirJavaFacade(firSession, baseModuleData, project.createJavaClassFinder(fileSearchScope.asPsiSearchScope()))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun AbstractProjectFileSearchScope.asPsiSearchScope() =
|
private fun AbstractProjectFileSearchScope.asPsiSearchScope() =
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.analysis.jvm.checkers.isJvm6
|
|||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.classId
|
import org.jetbrains.kotlin.fir.declarations.utils.classId
|
||||||
import org.jetbrains.kotlin.fir.expressions.*
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
import org.jetbrains.kotlin.fir.java.JavaClassConverter
|
import org.jetbrains.kotlin.fir.java.FirJavaFacade
|
||||||
import org.jetbrains.kotlin.fir.languageVersionSettings
|
import org.jetbrains.kotlin.fir.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.fir.resolve.defaultType
|
import org.jetbrains.kotlin.fir.resolve.defaultType
|
||||||
import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ object FirSessionFactory {
|
|||||||
kotlinScopeProvider,
|
kotlinScopeProvider,
|
||||||
it.packagePartProvider,
|
it.packagePartProvider,
|
||||||
projectEnvironment.getKotlinClassFinder(it.scope),
|
projectEnvironment.getKotlinClassFinder(it.scope),
|
||||||
projectEnvironment.getJavaClassConverter(this, moduleData, it.scope),
|
projectEnvironment.getFirJavaFacade(this, moduleData, it.scope),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ object FirSessionFactory {
|
|||||||
listOfNotNull(
|
listOfNotNull(
|
||||||
firProvider.symbolProvider,
|
firProvider.symbolProvider,
|
||||||
symbolProviderForBinariesFromIncrementalCompilation,
|
symbolProviderForBinariesFromIncrementalCompilation,
|
||||||
JavaSymbolProvider(this, projectEnvironment.getJavaClassConverter(this, moduleData, scope)),
|
JavaSymbolProvider(this, projectEnvironment.getFirJavaFacade(this, moduleData, scope)),
|
||||||
dependenciesSymbolProvider,
|
dependenciesSymbolProvider,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -213,7 +213,7 @@ object FirSessionFactory {
|
|||||||
kotlinScopeProvider,
|
kotlinScopeProvider,
|
||||||
packagePartProvider,
|
packagePartProvider,
|
||||||
projectEnvironment.getKotlinClassFinder(scope),
|
projectEnvironment.getKotlinClassFinder(scope),
|
||||||
projectEnvironment.getJavaClassConverter(this, moduleDataProvider.allModuleData.last(), scope)
|
projectEnvironment.getFirJavaFacade(this, moduleDataProvider.allModuleData.last(), scope)
|
||||||
)
|
)
|
||||||
|
|
||||||
val builtinsModuleData = createModuleDataForBuiltins(
|
val builtinsModuleData = createModuleDataForBuiltins(
|
||||||
|
|||||||
+3
-3
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.session.environment
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.java.JavaClassConverter
|
import org.jetbrains.kotlin.fir.java.FirJavaFacade
|
||||||
import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder
|
import org.jetbrains.kotlin.load.kotlin.KotlinClassFinder
|
||||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||||
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
|
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
|
||||||
@@ -53,9 +53,9 @@ interface AbstractProjectEnvironment {
|
|||||||
|
|
||||||
fun getSearchScopeForProjectJavaSources(): AbstractProjectFileSearchScope
|
fun getSearchScopeForProjectJavaSources(): AbstractProjectFileSearchScope
|
||||||
|
|
||||||
fun getJavaClassConverter(
|
fun getFirJavaFacade(
|
||||||
firSession: FirSession,
|
firSession: FirSession,
|
||||||
baseModuleData: FirModuleData,
|
baseModuleData: FirModuleData,
|
||||||
fileSearchScope: AbstractProjectFileSearchScope
|
fileSearchScope: AbstractProjectFileSearchScope
|
||||||
): JavaClassConverter
|
): FirJavaFacade
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -46,7 +46,7 @@ import org.jetbrains.kotlin.types.Variance.INVARIANT
|
|||||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||||
|
|
||||||
@ThreadSafeMutableState
|
@ThreadSafeMutableState
|
||||||
class JavaClassConverter(
|
class FirJavaFacade(
|
||||||
private val session: FirSession,
|
private val session: FirSession,
|
||||||
private val baseModuleData: FirModuleData,
|
private val baseModuleData: FirModuleData,
|
||||||
private val classFinder: JavaClassFinder
|
private val classFinder: JavaClassFinder
|
||||||
@@ -24,28 +24,28 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
// in order to load Kotlin classes as well.
|
// in order to load Kotlin classes as well.
|
||||||
class JavaSymbolProvider(
|
class JavaSymbolProvider(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
private val javaClassConverter: JavaClassConverter,
|
private val javaFacade: FirJavaFacade,
|
||||||
) : FirSymbolProvider(session) {
|
) : FirSymbolProvider(session) {
|
||||||
|
|
||||||
private val classCache =
|
private val classCache =
|
||||||
session.firCachesFactory.createCacheWithPostCompute(
|
session.firCachesFactory.createCacheWithPostCompute(
|
||||||
createValue = { classId: ClassId, parentClassSymbol: FirRegularClassSymbol? ->
|
createValue = { classId: ClassId, parentClassSymbol: FirRegularClassSymbol? ->
|
||||||
javaClassConverter.findClass(classId)?.let { FirRegularClassSymbol(classId) to (it to parentClassSymbol) }
|
javaFacade.findClass(classId)?.let { FirRegularClassSymbol(classId) to (it to parentClassSymbol) }
|
||||||
?: null to (null to null)
|
?: null to (null to null)
|
||||||
},
|
},
|
||||||
postCompute = { _, classSymbol, (javaClass, parentClassSymbol) ->
|
postCompute = { _, classSymbol, (javaClass, parentClassSymbol) ->
|
||||||
if (classSymbol != null && javaClass != null) {
|
if (classSymbol != null && javaClass != null) {
|
||||||
javaClassConverter.convertJavaClassToFir(classSymbol, parentClassSymbol, javaClass)
|
javaFacade.convertJavaClassToFir(classSymbol, parentClassSymbol, javaClass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun getPackage(fqName: FqName): FqName? =
|
override fun getPackage(fqName: FqName): FqName? =
|
||||||
javaClassConverter.getPackage(fqName)
|
javaFacade.getPackage(fqName)
|
||||||
|
|
||||||
override fun getClassLikeSymbolByClassId(classId: ClassId): FirRegularClassSymbol? =
|
override fun getClassLikeSymbolByClassId(classId: ClassId): FirRegularClassSymbol? =
|
||||||
try {
|
try {
|
||||||
if (javaClassConverter.hasTopLevelClassOf(classId)) getFirJavaClass(classId) else null
|
if (javaFacade.hasTopLevelClassOf(classId)) getFirJavaClass(classId) else null
|
||||||
} catch (e: ProcessCanceledException) {
|
} catch (e: ProcessCanceledException) {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-8
@@ -12,11 +12,10 @@ import org.jetbrains.kotlin.fir.ThreadSafeMutableState
|
|||||||
import org.jetbrains.kotlin.fir.declarations.getDeprecationInfos
|
import org.jetbrains.kotlin.fir.declarations.getDeprecationInfos
|
||||||
import org.jetbrains.kotlin.fir.deserialization.*
|
import org.jetbrains.kotlin.fir.deserialization.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||||
import org.jetbrains.kotlin.fir.java.JavaClassConverter
|
import org.jetbrains.kotlin.fir.java.FirJavaFacade
|
||||||
import org.jetbrains.kotlin.fir.languageVersionSettings
|
import org.jetbrains.kotlin.fir.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.load.java.JavaClassFinder
|
|
||||||
import org.jetbrains.kotlin.load.kotlin.*
|
import org.jetbrains.kotlin.load.kotlin.*
|
||||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
||||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion
|
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion
|
||||||
@@ -38,14 +37,14 @@ class KotlinDeserializedJvmSymbolsProvider(
|
|||||||
kotlinScopeProvider: FirKotlinScopeProvider,
|
kotlinScopeProvider: FirKotlinScopeProvider,
|
||||||
private val packagePartProvider: PackagePartProvider,
|
private val packagePartProvider: PackagePartProvider,
|
||||||
private val kotlinClassFinder: KotlinClassFinder,
|
private val kotlinClassFinder: KotlinClassFinder,
|
||||||
private val javaClassConverter: JavaClassConverter,
|
private val javaFacade: FirJavaFacade,
|
||||||
) : AbstractFirDeserializedSymbolsProvider(session, moduleDataProvider, kotlinScopeProvider) {
|
) : AbstractFirDeserializedSymbolsProvider(session, moduleDataProvider, kotlinScopeProvider) {
|
||||||
private val annotationsLoader = AnnotationsLoader(session, kotlinClassFinder)
|
private val annotationsLoader = AnnotationsLoader(session, kotlinClassFinder)
|
||||||
|
|
||||||
override fun computePackagePartsInfos(packageFqName: FqName): List<PackagePartsCacheData> {
|
override fun computePackagePartsInfos(packageFqName: FqName): List<PackagePartsCacheData> {
|
||||||
return packagePartProvider.findPackageParts(packageFqName.asString()).mapNotNull { partName ->
|
return packagePartProvider.findPackageParts(packageFqName.asString()).mapNotNull { partName ->
|
||||||
val classId = ClassId.topLevel(JvmClassName.byInternalName(partName).fqNameForTopLevelClassMaybeWithDollars)
|
val classId = ClassId.topLevel(JvmClassName.byInternalName(partName).fqNameForTopLevelClassMaybeWithDollars)
|
||||||
if (!javaClassConverter.hasTopLevelClassOf(classId)) return@mapNotNull null
|
if (!javaFacade.hasTopLevelClassOf(classId)) return@mapNotNull null
|
||||||
val (kotlinJvmBinaryClass, byteContent) =
|
val (kotlinJvmBinaryClass, byteContent) =
|
||||||
kotlinClassFinder.findKotlinClassOrContent(classId) as? KotlinClassFinder.Result.KotlinClass ?: return@mapNotNull null
|
kotlinClassFinder.findKotlinClassOrContent(classId) as? KotlinClassFinder.Result.KotlinClass ?: return@mapNotNull null
|
||||||
|
|
||||||
@@ -89,18 +88,18 @@ class KotlinDeserializedJvmSymbolsProvider(
|
|||||||
|
|
||||||
private fun loadJavaClass(classId: ClassId, content: ByteArray?): ClassMetadataFindResult? {
|
private fun loadJavaClass(classId: ClassId, content: ByteArray?): ClassMetadataFindResult? {
|
||||||
val javaClass = try {
|
val javaClass = try {
|
||||||
javaClassConverter.findClass(classId, content) ?: return null
|
javaFacade.findClass(classId, content) ?: return null
|
||||||
} catch (e: ProcessCanceledException) {
|
} catch (e: ProcessCanceledException) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
return ClassMetadataFindResult.NoMetadata { symbol ->
|
return ClassMetadataFindResult.NoMetadata { symbol ->
|
||||||
javaClassConverter.convertJavaClassToFir(symbol, classId.outerClassId?.let(::getClass), javaClass)
|
javaFacade.convertJavaClassToFir(symbol, classId.outerClassId?.let(::getClass), javaClass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun extractClassMetadata(classId: ClassId, parentContext: FirDeserializationContext?): ClassMetadataFindResult? {
|
override fun extractClassMetadata(classId: ClassId, parentContext: FirDeserializationContext?): ClassMetadataFindResult? {
|
||||||
// Kotlin classes are annotated Java classes, so this check also looks for them.
|
// Kotlin classes are annotated Java classes, so this check also looks for them.
|
||||||
if (!javaClassConverter.hasTopLevelClassOf(classId)) return null
|
if (!javaFacade.hasTopLevelClassOf(classId)) return null
|
||||||
|
|
||||||
val result = try {
|
val result = try {
|
||||||
kotlinClassFinder.findKotlinClassOrContent(classId)
|
kotlinClassFinder.findKotlinClassOrContent(classId)
|
||||||
@@ -128,7 +127,7 @@ class KotlinDeserializedJvmSymbolsProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getPackage(fqName: FqName): FqName? =
|
override fun getPackage(fqName: FqName): FqName? =
|
||||||
javaClassConverter.getPackage(fqName)
|
javaFacade.getPackage(fqName)
|
||||||
|
|
||||||
private fun loadAnnotationsFromClassFile(
|
private fun loadAnnotationsFromClassFile(
|
||||||
kotlinClass: KotlinClassFinder.Result.KotlinClass,
|
kotlinClass: KotlinClassFinder.Result.KotlinClass,
|
||||||
|
|||||||
Reference in New Issue
Block a user