[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:
committed by
teamcity
parent
c62257bbab
commit
23c69f8d17
+3
-3
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -12,8 +12,8 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.FirStatusTransformerExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.hasOrUnder
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.metaHasOrUnder
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotatedOrUnder
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.metaAnnotatedOrUnder
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.or
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.extensions.transform
|
||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.name.FqName
|
||||
class AllOpenStatusTransformer(session: FirSession) : FirStatusTransformerExtension(session) {
|
||||
companion object {
|
||||
private val ALL_OPEN = FqName("org.jetbrains.kotlin.fir.plugin.AllOpen")
|
||||
private val PREDICATE: DeclarationPredicate = hasOrUnder(ALL_OPEN) or metaHasOrUnder(ALL_OPEN)
|
||||
private val PREDICATE: DeclarationPredicate = annotatedOrUnder(ALL_OPEN) or metaAnnotatedOrUnder(ALL_OPEN)
|
||||
}
|
||||
|
||||
override fun transformStatus(status: FirDeclarationStatus, declaration: FirDeclaration): FirDeclarationStatus {
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.expressions.arguments
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.FirStatusTransformerExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.hasOrUnder
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotatedOrUnder
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.extensions.transform
|
||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||
@@ -37,7 +37,7 @@ class AllPublicVisibilityTransformer(session: FirSession) : FirStatusTransformer
|
||||
private val PrivateName = Name.identifier("Private")
|
||||
private val ProtectedName = Name.identifier("Protected")
|
||||
|
||||
private val PREDICATE: DeclarationPredicate = hasOrUnder(AllPublicClassId.asSingleFqName())
|
||||
private val PREDICATE: DeclarationPredicate = annotatedOrUnder(AllPublicClassId.asSingleFqName())
|
||||
}
|
||||
|
||||
override fun transformStatus(status: FirDeclarationStatus, declaration: FirDeclaration): FirDeclarationStatus {
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.FirSupertypeGenerationExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.has
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotated
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.name.Name
|
||||
class SomeAdditionalSupertypeGenerator(session: FirSession) : FirSupertypeGenerationExtension(session) {
|
||||
companion object {
|
||||
private val myInterfaceClassId = ClassId(FqName("foo"), Name.identifier("MyInterface"))
|
||||
private val PREDICATE: DeclarationPredicate = has("MyInterfaceSupertype".fqn())
|
||||
private val PREDICATE: DeclarationPredicate = annotated("MyInterfaceSupertype".fqn())
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -17,9 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.has
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.metaHas
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.or
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotated
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.plugin.fqn
|
||||
@@ -40,7 +38,7 @@ class AdditionalMembersGenerator(session: FirSession) : FirDeclarationGeneration
|
||||
private val MATERIALIZE_NAME = Name.identifier("materialize")
|
||||
private val NESTED_NAME = Name.identifier("Nested")
|
||||
|
||||
private val PREDICATE: DeclarationPredicate = has("NestedClassAndMaterializeMember".fqn())
|
||||
private val PREDICATE: DeclarationPredicate = annotated("NestedClassAndMaterializeMember".fqn())
|
||||
}
|
||||
|
||||
private val predicateBasedProvider = session.predicateBasedProvider
|
||||
|
||||
+2
-2
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.has
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotated
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.plugin.fqn
|
||||
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.name.SpecialNames
|
||||
*/
|
||||
class CompanionGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
|
||||
companion object {
|
||||
private val PREDICATE = has("CompanionWithFoo".fqn())
|
||||
private val PREDICATE = annotated("CompanionWithFoo".fqn())
|
||||
private val FOO_NAME = Name.identifier("foo")
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.has
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotated
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.plugin.fqn
|
||||
@@ -41,7 +41,7 @@ class ExternalClassGenerator(session: FirSession) : FirDeclarationGenerationExte
|
||||
private val GENERATED_CLASS_ID = ClassId(FOO_PACKAGE, Name.identifier("AllOpenGenerated"))
|
||||
private val MATERIALIZE_NAME = Name.identifier("materialize")
|
||||
|
||||
private val PREDICATE: DeclarationPredicate = has("ExternalClassWithNested".fqn())
|
||||
private val PREDICATE: DeclarationPredicate = annotated("ExternalClassWithNested".fqn())
|
||||
}
|
||||
|
||||
object Key : FirPluginKey() {
|
||||
|
||||
+3
-3
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildBlock
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.has
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotated
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.plugin.fqn
|
||||
@@ -35,8 +35,8 @@ import org.jetbrains.kotlin.name.Name
|
||||
*/
|
||||
class MembersOfSerializerGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
|
||||
companion object {
|
||||
private val SERIALIZABLE_PREDICATE = has("MySerializable".fqn())
|
||||
private val CORE_SERIALIZER_PREDICATE = has("CoreSerializer".fqn())
|
||||
private val SERIALIZABLE_PREDICATE = annotated("MySerializable".fqn())
|
||||
private val CORE_SERIALIZER_PREDICATE = annotated("CoreSerializer".fqn())
|
||||
|
||||
private val X_NAME = Name.identifier("x")
|
||||
}
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.has
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotated
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.plugin.fqn
|
||||
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.name.Name
|
||||
*/
|
||||
class TopLevelDeclarationsGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
|
||||
companion object {
|
||||
private val PREDICATE: DeclarationPredicate = has("DummyFunction".fqn())
|
||||
private val PREDICATE: DeclarationPredicate = annotated("DummyFunction".fqn())
|
||||
}
|
||||
|
||||
private val predicateBasedProvider = session.predicateBasedProvider
|
||||
|
||||
+3
-10
@@ -6,17 +6,10 @@
|
||||
package org.jetbrains.kotlin.noarg.fir
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSessionComponent
|
||||
import org.jetbrains.kotlin.fir.caches.FirCache
|
||||
import org.jetbrains.kotlin.fir.caches.firCachesFactory
|
||||
import org.jetbrains.kotlin.fir.caches.getValue
|
||||
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.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.extensions.utils.AbstractSimpleClassPredicateMatchingService
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.types.toRegularClassSymbol
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
class FirNoArgPredicateMatcher(
|
||||
@@ -31,7 +24,7 @@ class FirNoArgPredicateMatcher(
|
||||
|
||||
override val predicate = run {
|
||||
val annotationFqNames = noArgAnnotationFqNames.map { FqName(it) }
|
||||
has(annotationFqNames) or metaHas(annotationFqNames)
|
||||
annotated(annotationFqNames) or metaAnnotated(annotationFqNames)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.modality
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.has
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.annotated
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.resolve.defaultType
|
||||
@@ -44,7 +44,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||
|
||||
class FirParcelizeDeclarationGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
|
||||
companion object {
|
||||
private val PREDICATE = has(PARCELIZE_FQN, OLD_PARCELIZE_FQN)
|
||||
private val PREDICATE = annotated(PARCELIZE_FQN, OLD_PARCELIZE_FQN)
|
||||
private val parcelizeMethodsNames = setOf(DESCRIBE_CONTENTS_NAME, WRITE_TO_PARCEL_NAME)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user