AA: migrate PackagePartProviderFactory to general API providers

This commit is contained in:
Jinseong Jeon
2022-09-12 14:17:30 -07:00
committed by Ilya Kirillov
parent e2d758213f
commit 2580a5c233
6 changed files with 14 additions and 16 deletions
@@ -1,23 +1,23 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2022 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.analysis.low.level.api.fir.api.services
package org.jetbrains.kotlin.analysis.providers
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
abstract class PackagePartProviderFactory {
public abstract class PackagePartProviderFactory {
/**
* Create a [PackagePartProvider] for a given scope. [PackagePartProvider] is responsible for searching sub packages in a library.
*/
abstract fun createPackagePartProviderForLibrary(scope: GlobalSearchScope): PackagePartProvider
public abstract fun createPackagePartProvider(scope: GlobalSearchScope): PackagePartProvider
}
/**
* Create a [PackagePartProvider] for a given scope. [PackagePartProvider] is responsible for searching sub packages in a library.
*/
internal fun Project.createPackagePartProviderForLibrary(scope: GlobalSearchScope): PackagePartProvider =
getService(PackagePartProviderFactory::class.java).createPackagePartProviderForLibrary(scope)
public fun Project.createPackagePartProvider(scope: GlobalSearchScope): PackagePartProvider =
getService(PackagePartProviderFactory::class.java).createPackagePartProvider(scope)
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider
import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory
import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.FirSealedClassInheritorsProcessorFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.PackagePartProviderFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirBuiltinsSessionFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirLibrarySessionFactory
import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProvider
@@ -141,7 +140,7 @@ public class StandaloneAnalysisAPISessionBuilder(
registerService(
PackagePartProviderFactory::class.java,
object : PackagePartProviderFactory() {
override fun createPackagePartProviderForLibrary(scope: GlobalSearchScope): PackagePartProvider {
override fun createPackagePartProvider(scope: GlobalSearchScope): PackagePartProvider {
return packagePartProvider(scope)
}
}
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProv
import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider
import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.FirSealedClassInheritorsProcessorFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.PackagePartProviderFactory
import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProvider
import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProviderImpl
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
@@ -167,7 +166,7 @@ internal fun configureProjectEnvironment(
project.picoContainer.registerComponentInstance(
PackagePartProviderFactory::class.qualifiedName,
object : PackagePartProviderFactory() {
override fun createPackagePartProviderForLibrary(scope: GlobalSearchScope): PackagePartProvider {
override fun createPackagePartProvider(scope: GlobalSearchScope): PackagePartProvider {
return packagePartProvider(scope)
}
}
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.createPackagePartProviderForLibrary
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirJavaFacadeForBinaries
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession
import org.jetbrains.kotlin.analysis.project.structure.KtBinaryModule
import org.jetbrains.kotlin.analysis.providers.createPackagePartProvider
import org.jetbrains.kotlin.fir.BuiltinTypes
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
import org.jetbrains.kotlin.fir.java.deserialization.JvmClassFileBasedSymbolProvider
@@ -31,7 +31,7 @@ internal object LLFirLibraryProviderFactory {
): List<FirSymbolProvider> {
val moduleDataProvider = SingleModuleDataProvider(moduleData)
val scope = module.contentScope
val packagePartProvider = project.createPackagePartProviderForLibrary(scope)
val packagePartProvider = project.createPackagePartProvider(scope)
return buildList {
add(
JvmClassFileBasedSymbolProvider(
@@ -56,7 +56,7 @@ internal object LLFirLibraryProviderFactory {
scope: GlobalSearchScope,
): List<FirSymbolProvider> {
val moduleDataProvider = SingleModuleDataProvider(moduleData)
val packagePartProvider = project.createPackagePartProviderForLibrary(scope)
val packagePartProvider = project.createPackagePartProvider(scope)
return buildList {
add(
JvmClassFileBasedSymbolProvider(
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.services
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.PackagePartProviderFactory
import org.jetbrains.kotlin.analysis.providers.PackagePartProviderFactory
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.serialization.deserialization.ClassData
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.test.services.moduleStructure
internal class PackagePartProviderTestImpl(
private val testServices: TestServices,
) : PackagePartProviderFactory() {
override fun createPackagePartProviderForLibrary(scope: GlobalSearchScope): PackagePartProvider {
override fun createPackagePartProvider(scope: GlobalSearchScope): PackagePartProvider {
val providers = testServices.moduleStructure.modules.map { module ->
testServices.compilerConfigurationProvider.getPackagePartProviderFactory(module)(scope)
}
@@ -15,13 +15,13 @@ import org.jetbrains.kotlin.analysis.api.fir.references.ReadWriteAccessCheckerFi
import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirResolveSessionService
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.FirSealedClassInheritorsProcessorFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.PackagePartProviderFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirBuiltinsSessionFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirLibrarySessionFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.services.KtCompilerPluginsProviderForTests
import org.jetbrains.kotlin.analysis.low.level.api.fir.services.LLFirSealedClassInheritorsProcessorFactoryForTests
import org.jetbrains.kotlin.analysis.low.level.api.fir.services.PackagePartProviderTestImpl
import org.jetbrains.kotlin.analysis.project.structure.KtCompilerPluginsProvider
import org.jetbrains.kotlin.analysis.providers.PackagePartProviderFactory
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder