[LL API] Move composite declaration provider to be used in IntelliJ
This commit is contained in:
+1
-1
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LowLevelFirApiFacadeForResolveOnAir
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.CompositeKotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.CompositeKotlinPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.LLFirResolveExtensionTool
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.llResolveExtensionTool
|
||||
@@ -28,6 +27,7 @@ import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.CompositeKotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
|
||||
+5
-7
@@ -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.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure
|
||||
package org.jetbrains.kotlin.analysis.providers.impl
|
||||
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
@@ -12,11 +12,9 @@ import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
class CompositeKotlinDeclarationProvider
|
||||
private constructor(
|
||||
public class CompositeKotlinDeclarationProvider private constructor(
|
||||
private val providers: List<KotlinDeclarationProvider>
|
||||
) : KotlinDeclarationProvider() {
|
||||
|
||||
override fun getClassLikeDeclarationByClassId(classId: ClassId): KtClassLikeDeclaration? {
|
||||
return providers.firstNotNullOfOrNull { it.getClassLikeDeclarationByClassId(classId) }
|
||||
}
|
||||
@@ -65,12 +63,12 @@ private constructor(
|
||||
return providers.flatMapTo(mutableListOf()) { it.findFilesForScript(scriptFqName) }
|
||||
}
|
||||
|
||||
override fun computePackageSetWithTopLevelCallableDeclarations(): Set<String> {
|
||||
override fun computePackageSetWithTopLevelCallableDeclarations(): Set<String> {
|
||||
return providers.flatMapTo(mutableSetOf()) { it.computePackageSetWithTopLevelCallableDeclarations() }
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun create(providers: List<KotlinDeclarationProvider>): KotlinDeclarationProvider {
|
||||
public companion object {
|
||||
public fun create(providers: List<KotlinDeclarationProvider>): KotlinDeclarationProvider {
|
||||
return when (providers.size) {
|
||||
0 -> EmptyKotlinDeclarationProvider
|
||||
1 -> providers.single()
|
||||
+15
-15
@@ -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.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure
|
||||
package org.jetbrains.kotlin.analysis.providers.impl
|
||||
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
@@ -12,18 +12,18 @@ import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
internal object EmptyKotlinDeclarationProvider : KotlinDeclarationProvider() {
|
||||
override fun getClassLikeDeclarationByClassId(classId: ClassId) = null
|
||||
override fun getAllClassesByClassId(classId: ClassId) = emptyList<KtClassOrObject>()
|
||||
override fun getAllTypeAliasesByClassId(classId: ClassId) = emptyList<KtTypeAlias>()
|
||||
override fun getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName: FqName) = emptySet<Name>()
|
||||
override fun getTopLevelProperties(callableId: CallableId) = emptyList<KtProperty>()
|
||||
override fun getTopLevelFunctions(callableId: CallableId) = emptyList<KtNamedFunction>()
|
||||
override fun getTopLevelCallableFiles(callableId: CallableId) = emptyList<KtFile>()
|
||||
override fun getTopLevelCallableNamesInPackage(packageFqName: FqName) = emptySet<Name>()
|
||||
override fun findFilesForFacadeByPackage(packageFqName: FqName) = emptyList<KtFile>()
|
||||
override fun findFilesForFacade(facadeFqName: FqName) = emptyList<KtFile>()
|
||||
override fun findInternalFilesForFacade(facadeFqName: FqName) = emptyList<KtFile>()
|
||||
override fun findFilesForScript(scriptFqName: FqName) = emptyList<KtScript>()
|
||||
public object EmptyKotlinDeclarationProvider : KotlinDeclarationProvider() {
|
||||
override fun getClassLikeDeclarationByClassId(classId: ClassId): KtClassLikeDeclaration? = null
|
||||
override fun getAllClassesByClassId(classId: ClassId): List<KtClassOrObject> = emptyList()
|
||||
override fun getAllTypeAliasesByClassId(classId: ClassId): List<KtTypeAlias> = emptyList()
|
||||
override fun getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName: FqName): Set<Name> = emptySet()
|
||||
override fun getTopLevelProperties(callableId: CallableId): List<KtProperty> = emptyList()
|
||||
override fun getTopLevelFunctions(callableId: CallableId): List<KtNamedFunction> = emptyList()
|
||||
override fun getTopLevelCallableFiles(callableId: CallableId): List<KtFile> = emptyList()
|
||||
override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set<Name> = emptySet()
|
||||
override fun findFilesForFacadeByPackage(packageFqName: FqName): List<KtFile> = emptyList()
|
||||
override fun findFilesForFacade(facadeFqName: FqName): List<KtFile> = emptyList()
|
||||
override fun findInternalFilesForFacade(facadeFqName: FqName): List<KtFile> = emptyList()
|
||||
override fun findFilesForScript(scriptFqName: FqName): List<KtScript> = emptyList()
|
||||
override fun computePackageSetWithTopLevelCallableDeclarations(): Set<String> = emptySet()
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.providers
|
||||
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.CompositeKotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.CompositeKotlinPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.LLFirResolveExtensionTool
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.llResolveExtensionTool
|
||||
@@ -15,6 +14,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.LLFirCompositeSymbol
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.LLFirKotlinSymbolProviderNameCache
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.CompositeKotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
|
||||
+1
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.analysis.project.structure.*
|
||||
import org.jetbrains.kotlin.analysis.providers.createAnnotationResolver
|
||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.EmptyKotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.FileBasedKotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.utils.trackers.CompositeModificationTracker
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
|
||||
Reference in New Issue
Block a user