[FIR] Remove unused methods from FirPredicateBasedProvider
This commit is contained in:
committed by
TeamCityServer
parent
6a14d91dbd
commit
1cfe4deda9
+6
-50
@@ -24,73 +24,34 @@ abstract class FirPredicateBasedProvider : FirSessionComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
abstract fun getSymbolsByPredicate(predicate: DeclarationPredicate): List<FirAnnotatedDeclaration>
|
abstract fun getSymbolsByPredicate(predicate: DeclarationPredicate): List<FirAnnotatedDeclaration>
|
||||||
|
|
||||||
abstract fun getSymbolsByPredicate(
|
|
||||||
declarations: Collection<FirAnnotatedDeclaration>,
|
|
||||||
predicate: DeclarationPredicate
|
|
||||||
): List<FirAnnotatedDeclaration>
|
|
||||||
|
|
||||||
abstract fun getSymbolsWithOwnersByPredicate(
|
|
||||||
predicate: DeclarationPredicate
|
|
||||||
): List<Pair<FirAnnotatedDeclaration, List<FirAnnotatedDeclaration>>>
|
|
||||||
|
|
||||||
abstract fun getSymbolsWithOwnersByPredicate(
|
|
||||||
declarations: Collection<FirAnnotatedDeclaration>,
|
|
||||||
predicate: DeclarationPredicate
|
|
||||||
): List<Pair<FirAnnotatedDeclaration, List<FirAnnotatedDeclaration>>>
|
|
||||||
|
|
||||||
abstract fun getOwnersOfDeclaration(declaration: FirAnnotatedDeclaration): List<FirAnnotatedDeclaration>?
|
abstract fun getOwnersOfDeclaration(declaration: FirAnnotatedDeclaration): List<FirAnnotatedDeclaration>?
|
||||||
|
|
||||||
abstract fun fileHasPluginAnnotations(file: FirFile): Boolean
|
abstract fun fileHasPluginAnnotations(file: FirFile): Boolean
|
||||||
|
|
||||||
abstract fun registerAnnotatedDeclaration(declaration: FirAnnotatedDeclaration, owners: PersistentList<FirAnnotatedDeclaration>)
|
|
||||||
abstract fun registerGeneratedDeclaration(declaration: FirAnnotatedDeclaration, owner: FirAnnotatedDeclaration)
|
|
||||||
|
|
||||||
abstract fun matches(predicate: DeclarationPredicate, declaration: FirAnnotatedDeclaration): Boolean
|
abstract fun matches(predicate: DeclarationPredicate, declaration: FirAnnotatedDeclaration): Boolean
|
||||||
|
|
||||||
fun matches(predicates: List<DeclarationPredicate>, declaration: FirAnnotatedDeclaration): Boolean {
|
fun matches(predicates: List<DeclarationPredicate>, declaration: FirAnnotatedDeclaration): Boolean {
|
||||||
return predicates.any { matches(it, declaration) }
|
return predicates.any { matches(it, declaration) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@NoMutableState
|
@NoMutableState
|
||||||
private class FirPredicateBasedProviderImpl(private val session: FirSession) : FirPredicateBasedProvider() {
|
class FirPredicateBasedProviderImpl(private val session: FirSession) : FirPredicateBasedProvider() {
|
||||||
private val registeredPluginAnnotations = session.registeredPluginAnnotations
|
private val registeredPluginAnnotations = session.registeredPluginAnnotations
|
||||||
private val cache = Cache()
|
private val cache = Cache()
|
||||||
|
|
||||||
override fun getSymbolsByPredicate(predicate: DeclarationPredicate): List<FirAnnotatedDeclaration> {
|
override fun getSymbolsByPredicate(predicate: DeclarationPredicate): List<FirAnnotatedDeclaration> {
|
||||||
val annotations = registeredPluginAnnotations.getAnnotationsForPredicate(predicate)
|
val annotations = registeredPluginAnnotations.getAnnotationsForPredicate(predicate)
|
||||||
if (annotations.isEmpty()) return emptyList()
|
if (annotations.isEmpty()) return emptyList()
|
||||||
val declarations = annotations.flatMapTo(mutableSetOf()) { cache.declarationByAnnotation[it] + cache.declarationsUnderAnnotated[it] }
|
val declarations = annotations.flatMapTo(mutableSetOf()) {
|
||||||
return getSymbolsByPredicate(declarations, predicate)
|
cache.declarationByAnnotation[it] + cache.declarationsUnderAnnotated[it]
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getSymbolsByPredicate(
|
|
||||||
declarations: Collection<FirAnnotatedDeclaration>,
|
|
||||||
predicate: DeclarationPredicate
|
|
||||||
): List<FirAnnotatedDeclaration> {
|
|
||||||
return declarations.filter { matches(predicate, it) }
|
return declarations.filter { matches(predicate, it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getSymbolsWithOwnersByPredicate(predicate: DeclarationPredicate): List<Pair<FirAnnotatedDeclaration, List<FirAnnotatedDeclaration>>> {
|
|
||||||
return getSymbolsByPredicate(predicate).zipWithParents()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getSymbolsWithOwnersByPredicate(
|
|
||||||
declarations: Collection<FirAnnotatedDeclaration>,
|
|
||||||
predicate: DeclarationPredicate
|
|
||||||
): List<Pair<FirAnnotatedDeclaration, List<FirAnnotatedDeclaration>>> {
|
|
||||||
return getSymbolsByPredicate(declarations, predicate).zipWithParents()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun List<FirAnnotatedDeclaration>.zipWithParents(): List<Pair<FirAnnotatedDeclaration, List<FirAnnotatedDeclaration>>> {
|
|
||||||
return this.map { it to cache.ownersForDeclaration.getValue(it) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun fileHasPluginAnnotations(file: FirFile): Boolean {
|
override fun fileHasPluginAnnotations(file: FirFile): Boolean {
|
||||||
return file in cache.filesWithPluginAnnotations
|
return file in cache.filesWithPluginAnnotations
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun registerAnnotatedDeclaration(declaration: FirAnnotatedDeclaration, owners: PersistentList<FirAnnotatedDeclaration>) {
|
fun registerAnnotatedDeclaration(declaration: FirAnnotatedDeclaration, owners: PersistentList<FirAnnotatedDeclaration>) {
|
||||||
cache.ownersForDeclaration[declaration] = owners
|
cache.ownersForDeclaration[declaration] = owners
|
||||||
registerOwnersDeclarations(declaration, owners)
|
registerOwnersDeclarations(declaration, owners)
|
||||||
|
|
||||||
@@ -108,11 +69,6 @@ private class FirPredicateBasedProviderImpl(private val session: FirSession) : F
|
|||||||
return cache.ownersForDeclaration[declaration]
|
return cache.ownersForDeclaration[declaration]
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun registerGeneratedDeclaration(declaration: FirAnnotatedDeclaration, owner: FirAnnotatedDeclaration) {
|
|
||||||
val owners = cache.ownersForDeclaration.getValue(owner).add(owner)
|
|
||||||
registerAnnotatedDeclaration(declaration, owners)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun registerOwnersDeclarations(declaration: FirAnnotatedDeclaration, owners: PersistentList<FirAnnotatedDeclaration>) {
|
private fun registerOwnersDeclarations(declaration: FirAnnotatedDeclaration, owners: PersistentList<FirAnnotatedDeclaration>) {
|
||||||
val lastOwner = owners.lastOrNull() ?: return
|
val lastOwner = owners.lastOrNull() ?: return
|
||||||
val annotationsFromLastOwner = cache.annotationsOfDeclaration[lastOwner]
|
val annotationsFromLastOwner = cache.annotationsOfDeclaration[lastOwner]
|
||||||
|
|||||||
+3
-1
@@ -83,6 +83,8 @@ private class FirAnnotationResolveTransformer(
|
|||||||
session: FirSession,
|
session: FirSession,
|
||||||
scopeSession: ScopeSession
|
scopeSession: ScopeSession
|
||||||
) : FirAbstractAnnotationResolveTransformer<Multimap<AnnotationFqn, FirRegularClass>, PersistentList<FirAnnotatedDeclaration>>(session, scopeSession) {
|
) : FirAbstractAnnotationResolveTransformer<Multimap<AnnotationFqn, FirRegularClass>, PersistentList<FirAnnotatedDeclaration>>(session, scopeSession) {
|
||||||
|
private val predicateBasedProvider = session.predicateBasedProvider as FirPredicateBasedProviderImpl
|
||||||
|
|
||||||
var metaAnnotations: Set<AnnotationFqn> = emptySet()
|
var metaAnnotations: Set<AnnotationFqn> = emptySet()
|
||||||
private val typeResolverTransformer: FirSpecificTypeResolverTransformer = FirSpecificTypeResolverTransformer(
|
private val typeResolverTransformer: FirSpecificTypeResolverTransformer = FirSpecificTypeResolverTransformer(
|
||||||
session,
|
session,
|
||||||
@@ -138,7 +140,7 @@ private class FirAnnotationResolveTransformer(
|
|||||||
data: Multimap<AnnotationFqn, FirRegularClass>
|
data: Multimap<AnnotationFqn, FirRegularClass>
|
||||||
): FirAnnotatedDeclaration {
|
): FirAnnotatedDeclaration {
|
||||||
return super.transformAnnotatedDeclaration(annotatedDeclaration, data).also {
|
return super.transformAnnotatedDeclaration(annotatedDeclaration, data).also {
|
||||||
session.predicateBasedProvider.registerAnnotatedDeclaration(annotatedDeclaration, owners)
|
predicateBasedProvider.registerAnnotatedDeclaration(annotatedDeclaration, owners)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user