[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.api.lifetime.withValidityAssertion
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
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.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.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.LLFirResolveExtensionTool
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.llResolveExtensionTool
|
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.KotlinPackageProvider
|
||||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
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.FirSession
|
||||||
import org.jetbrains.kotlin.fir.moduleData
|
import org.jetbrains.kotlin.fir.moduleData
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
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.
|
* 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.analysis.providers.KotlinDeclarationProvider
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
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.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
|
||||||
class CompositeKotlinDeclarationProvider
|
public class CompositeKotlinDeclarationProvider private constructor(
|
||||||
private constructor(
|
|
||||||
private val providers: List<KotlinDeclarationProvider>
|
private val providers: List<KotlinDeclarationProvider>
|
||||||
) : KotlinDeclarationProvider() {
|
) : KotlinDeclarationProvider() {
|
||||||
|
|
||||||
override fun getClassLikeDeclarationByClassId(classId: ClassId): KtClassLikeDeclaration? {
|
override fun getClassLikeDeclarationByClassId(classId: ClassId): KtClassLikeDeclaration? {
|
||||||
return providers.firstNotNullOfOrNull { it.getClassLikeDeclarationByClassId(classId) }
|
return providers.firstNotNullOfOrNull { it.getClassLikeDeclarationByClassId(classId) }
|
||||||
}
|
}
|
||||||
@@ -65,12 +63,12 @@ private constructor(
|
|||||||
return providers.flatMapTo(mutableListOf()) { it.findFilesForScript(scriptFqName) }
|
return providers.flatMapTo(mutableListOf()) { it.findFilesForScript(scriptFqName) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun computePackageSetWithTopLevelCallableDeclarations(): Set<String> {
|
override fun computePackageSetWithTopLevelCallableDeclarations(): Set<String> {
|
||||||
return providers.flatMapTo(mutableSetOf()) { it.computePackageSetWithTopLevelCallableDeclarations() }
|
return providers.flatMapTo(mutableSetOf()) { it.computePackageSetWithTopLevelCallableDeclarations() }
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
public companion object {
|
||||||
fun create(providers: List<KotlinDeclarationProvider>): KotlinDeclarationProvider {
|
public fun create(providers: List<KotlinDeclarationProvider>): KotlinDeclarationProvider {
|
||||||
return when (providers.size) {
|
return when (providers.size) {
|
||||||
0 -> EmptyKotlinDeclarationProvider
|
0 -> EmptyKotlinDeclarationProvider
|
||||||
1 -> providers.single()
|
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.
|
* 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.analysis.providers.KotlinDeclarationProvider
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
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.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
|
||||||
internal object EmptyKotlinDeclarationProvider : KotlinDeclarationProvider() {
|
public object EmptyKotlinDeclarationProvider : KotlinDeclarationProvider() {
|
||||||
override fun getClassLikeDeclarationByClassId(classId: ClassId) = null
|
override fun getClassLikeDeclarationByClassId(classId: ClassId): KtClassLikeDeclaration? = null
|
||||||
override fun getAllClassesByClassId(classId: ClassId) = emptyList<KtClassOrObject>()
|
override fun getAllClassesByClassId(classId: ClassId): List<KtClassOrObject> = emptyList()
|
||||||
override fun getAllTypeAliasesByClassId(classId: ClassId) = emptyList<KtTypeAlias>()
|
override fun getAllTypeAliasesByClassId(classId: ClassId): List<KtTypeAlias> = emptyList()
|
||||||
override fun getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName: FqName) = emptySet<Name>()
|
override fun getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName: FqName): Set<Name> = emptySet()
|
||||||
override fun getTopLevelProperties(callableId: CallableId) = emptyList<KtProperty>()
|
override fun getTopLevelProperties(callableId: CallableId): List<KtProperty> = emptyList()
|
||||||
override fun getTopLevelFunctions(callableId: CallableId) = emptyList<KtNamedFunction>()
|
override fun getTopLevelFunctions(callableId: CallableId): List<KtNamedFunction> = emptyList()
|
||||||
override fun getTopLevelCallableFiles(callableId: CallableId) = emptyList<KtFile>()
|
override fun getTopLevelCallableFiles(callableId: CallableId): List<KtFile> = emptyList()
|
||||||
override fun getTopLevelCallableNamesInPackage(packageFqName: FqName) = emptySet<Name>()
|
override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set<Name> = emptySet()
|
||||||
override fun findFilesForFacadeByPackage(packageFqName: FqName) = emptyList<KtFile>()
|
override fun findFilesForFacadeByPackage(packageFqName: FqName): List<KtFile> = emptyList()
|
||||||
override fun findFilesForFacade(facadeFqName: FqName) = emptyList<KtFile>()
|
override fun findFilesForFacade(facadeFqName: FqName): List<KtFile> = emptyList()
|
||||||
override fun findInternalFilesForFacade(facadeFqName: FqName) = emptyList<KtFile>()
|
override fun findInternalFilesForFacade(facadeFqName: FqName): List<KtFile> = emptyList()
|
||||||
override fun findFilesForScript(scriptFqName: FqName) = emptyList<KtScript>()
|
override fun findFilesForScript(scriptFqName: FqName): List<KtScript> = emptyList()
|
||||||
override fun computePackageSetWithTopLevelCallableDeclarations(): Set<String> = emptySet()
|
override fun computePackageSetWithTopLevelCallableDeclarations(): Set<String> = emptySet()
|
||||||
}
|
}
|
||||||
+1
-1
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.providers
|
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.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.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.LLFirResolveExtensionTool
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.llResolveExtensionTool
|
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.low.level.api.fir.util.LLFirKotlinSymbolProviderNameCache
|
||||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProvider
|
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.builtins.StandardNames
|
||||||
import org.jetbrains.kotlin.config.AnalysisFlags
|
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
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.createAnnotationResolver
|
||||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
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.providers.impl.FileBasedKotlinDeclarationProvider
|
||||||
import org.jetbrains.kotlin.analysis.utils.trackers.CompositeModificationTracker
|
import org.jetbrains.kotlin.analysis.utils.trackers.CompositeModificationTracker
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
|
|||||||
Reference in New Issue
Block a user