[FIR] Add to new types of annotation predicates

- `ParentAnnotatedWith` matches declarations, which parent is annotated
- `HasAnnotatedWith` matches declarations, which have at least one
     direct child with annotation

Also, `DeclarationPredicate.Any` is removed, because there is no
  intention to support lookup for all declarations in module

^KT-52486 Fixed
This commit is contained in:
Dmitriy Novozhilov
2022-05-25 17:37:29 +03:00
committed by teamcity
parent c62257bbab
commit 23c69f8d17
15 changed files with 226 additions and 82 deletions
@@ -15,8 +15,8 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.extensions.FirExtensionSessionComponent.Factory
import org.jetbrains.kotlin.fir.extensions.FirStatusTransformerExtension
import org.jetbrains.kotlin.fir.extensions.predicate.has
import org.jetbrains.kotlin.fir.extensions.predicate.metaHas
import org.jetbrains.kotlin.fir.extensions.predicate.annotated
import org.jetbrains.kotlin.fir.extensions.predicate.metaAnnotated
import org.jetbrains.kotlin.fir.extensions.predicate.or
import org.jetbrains.kotlin.fir.extensions.utils.AbstractSimpleClassPredicateMatchingService
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
@@ -59,7 +59,7 @@ class FirAllOpenPredicateMatcher(
override val predicate = run {
val annotationFqNames = allOpenAnnotationFqNames.map { FqName(it) }
has(annotationFqNames) or metaHas(annotationFqNames)
annotated(annotationFqNames) or metaAnnotated(annotationFqNames)
}
}