From e5365cec87c59094abd6b683eea091747ff9d086 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 7 May 2020 10:44:27 +0300 Subject: [PATCH] [FIR-PLUGIN] Change allopen plugin according to previous commit --- .../kotlin/fir/allopen/AllOpenClassGenerator.kt | 10 +++++++--- .../fir/allopen/AllOpenStatusTransformer.kt | 17 ++++++++++++----- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/compiler/fir/plugins/allopen-plugin/src/org/jetbrains/kotlin/fir/allopen/AllOpenClassGenerator.kt b/compiler/fir/plugins/allopen-plugin/src/org/jetbrains/kotlin/fir/allopen/AllOpenClassGenerator.kt index dbb5a646920..d0f972dc5ab 100644 --- a/compiler/fir/plugins/allopen-plugin/src/org/jetbrains/kotlin/fir/allopen/AllOpenClassGenerator.kt +++ b/compiler/fir/plugins/allopen-plugin/src/org/jetbrains/kotlin/fir/allopen/AllOpenClassGenerator.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.FirEffectiveVisibility import org.jetbrains.kotlin.fir.FirEffectiveVisibilityImpl import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclaration +import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.builder.buildClassImpl @@ -45,8 +46,11 @@ class AllOpenClassGenerator(session: FirSession) : FirClassGenerationExtension(s return listOf(GeneratedClass(klass, containingFile)) } - override val annotations: Set = - setOf(FqName("org.jetbrains.kotlin.fir.allopen.WithClass")) + override val directlyApplicableAnnotations: Set = setOf(FqName("org.jetbrains.kotlin.fir.allopen.WithClass")) - override val metaAnnotations: Set = emptySet() + override val childrenApplicableAnnotations: Set + get() = emptySet() + + override val metaAnnotations: Map + get() = emptyMap() } \ No newline at end of file diff --git a/compiler/fir/plugins/allopen-plugin/src/org/jetbrains/kotlin/fir/allopen/AllOpenStatusTransformer.kt b/compiler/fir/plugins/allopen-plugin/src/org/jetbrains/kotlin/fir/allopen/AllOpenStatusTransformer.kt index 704b3d7adde..0feaaa6edd6 100644 --- a/compiler/fir/plugins/allopen-plugin/src/org/jetbrains/kotlin/fir/allopen/AllOpenStatusTransformer.kt +++ b/compiler/fir/plugins/allopen-plugin/src/org/jetbrains/kotlin/fir/allopen/AllOpenStatusTransformer.kt @@ -15,17 +15,24 @@ import org.jetbrains.kotlin.fir.extensions.transform import org.jetbrains.kotlin.name.FqName class AllOpenStatusTransformer(session: FirSession) : FirStatusTransformerExtension(session) { + companion object { + private val ALL_OPEN = FqName("org.jetbrains.kotlin.fir.allopen.AllOpen") + } + override fun transformStatus(declaration: FirDeclaration, status: FirDeclarationStatus): FirDeclarationStatus { if (status.modality != null) return status return status.transform(modality = Modality.OPEN) } override val mode: Mode - get() = Mode.ALL_IN_ANNOTATED_ELEMENT + get() = Mode.ANNOTATED_ELEMENT - override val annotations: Set = - setOf(FqName("org.jetbrains.kotlin.fir.allopen.AllOpen")) + override val directlyApplicableAnnotations: Set + get() = setOf(ALL_OPEN) - override val metaAnnotations: Set = - setOf(FqName("org.jetbrains.kotlin.fir.allopen.AllOpen")) + override val childrenApplicableAnnotations: Set + get() = setOf(ALL_OPEN) + + override val metaAnnotations: Map + get() = mapOf(ALL_OPEN to MetaAnnotationMode.ANNOTATED_AND_CHILDREN) } \ No newline at end of file