[fir low level, fir] extract empty FirPredicateBasedProvider to a separate class
This commit is contained in:
+2
-16
@@ -38,10 +38,7 @@ import org.jetbrains.kotlin.fir.deserialization.EmptyModuleDataProvider
|
|||||||
import org.jetbrains.kotlin.fir.deserialization.LibraryPathFilter
|
import org.jetbrains.kotlin.fir.deserialization.LibraryPathFilter
|
||||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.deserialization.MultipleModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.MultipleModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.*
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirPredicateBasedProvider
|
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirRegisteredPluginAnnotations
|
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirSwitchableExtensionDeclarationsSymbolProvider
|
|
||||||
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
||||||
import org.jetbrains.kotlin.fir.java.FirJavaFacadeForSource
|
import org.jetbrains.kotlin.fir.java.FirJavaFacadeForSource
|
||||||
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
||||||
@@ -405,18 +402,7 @@ internal object LLFirSessionFactory {
|
|||||||
// We need FirRegisteredPluginAnnotations during extensions' registration process
|
// We need FirRegisteredPluginAnnotations during extensions' registration process
|
||||||
val annotationsResolver = project.createAnnotationResolver(contentScope)
|
val annotationsResolver = project.createAnnotationResolver(contentScope)
|
||||||
register(FirRegisteredPluginAnnotations::class, LLFirIdeRegisteredPluginAnnotations(this@session, annotationsResolver))
|
register(FirRegisteredPluginAnnotations::class, LLFirIdeRegisteredPluginAnnotations(this@session, annotationsResolver))
|
||||||
register(
|
register(FirPredicateBasedProvider::class, FirEmptyPredicateBasedProvider())
|
||||||
FirPredicateBasedProvider::class,
|
|
||||||
object : FirPredicateBasedProvider() {
|
|
||||||
override fun getSymbolsByPredicate(predicate: DeclarationPredicate): List<FirBasedSymbol<*>> = emptyList()
|
|
||||||
|
|
||||||
override fun getOwnersOfDeclaration(declaration: FirDeclaration): List<FirBasedSymbol<*>>? = null
|
|
||||||
|
|
||||||
override fun fileHasPluginAnnotations(file: FirFile): Boolean = false
|
|
||||||
|
|
||||||
override fun matches(predicate: DeclarationPredicate, declaration: FirDeclaration): Boolean = false
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
FirSessionFactory.FirSessionConfigurator(this).apply {
|
FirSessionFactory.FirSessionConfigurator(this).apply {
|
||||||
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
|
for (extensionRegistrar in FirExtensionRegistrar.getInstances(project)) {
|
||||||
|
|||||||
+11
@@ -150,4 +150,15 @@ class FirPredicateBasedProviderImpl(private val session: FirSession) : FirPredic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NoMutableState
|
||||||
|
class FirEmptyPredicateBasedProvider(): FirPredicateBasedProvider() {
|
||||||
|
override fun getSymbolsByPredicate(predicate: DeclarationPredicate): List<FirBasedSymbol<*>> = emptyList()
|
||||||
|
|
||||||
|
override fun getOwnersOfDeclaration(declaration: FirDeclaration): List<FirBasedSymbol<*>>? = null
|
||||||
|
|
||||||
|
override fun fileHasPluginAnnotations(file: FirFile): Boolean = false
|
||||||
|
|
||||||
|
override fun matches(predicate: DeclarationPredicate, declaration: FirDeclaration): Boolean = false
|
||||||
|
}
|
||||||
|
|
||||||
val FirSession.predicateBasedProvider: FirPredicateBasedProvider by FirSession.sessionComponentAccessor()
|
val FirSession.predicateBasedProvider: FirPredicateBasedProvider by FirSession.sessionComponentAccessor()
|
||||||
|
|||||||
Reference in New Issue
Block a user