[FIR-PLUGIN] Change allopen plugin according to previous commit

This commit is contained in:
Dmitriy Novozhilov
2020-05-07 10:44:27 +03:00
parent fac57344a3
commit e5365cec87
2 changed files with 19 additions and 8 deletions
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.FirEffectiveVisibility
import org.jetbrains.kotlin.fir.FirEffectiveVisibilityImpl import org.jetbrains.kotlin.fir.FirEffectiveVisibilityImpl
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirDeclaration 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.FirFile
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.builder.buildClassImpl import org.jetbrains.kotlin.fir.declarations.builder.buildClassImpl
@@ -45,8 +46,11 @@ class AllOpenClassGenerator(session: FirSession) : FirClassGenerationExtension(s
return listOf(GeneratedClass(klass, containingFile)) return listOf(GeneratedClass(klass, containingFile))
} }
override val annotations: Set<AnnotationFqn> = override val directlyApplicableAnnotations: Set<AnnotationFqn> = setOf(FqName("org.jetbrains.kotlin.fir.allopen.WithClass"))
setOf(FqName("org.jetbrains.kotlin.fir.allopen.WithClass"))
override val metaAnnotations: Set<AnnotationFqn> = emptySet() override val childrenApplicableAnnotations: Set<AnnotationFqn>
get() = emptySet()
override val metaAnnotations: Map<AnnotationFqn, MetaAnnotationMode>
get() = emptyMap()
} }
@@ -15,17 +15,24 @@ import org.jetbrains.kotlin.fir.extensions.transform
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
class AllOpenStatusTransformer(session: FirSession) : FirStatusTransformerExtension(session) { 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 { override fun transformStatus(declaration: FirDeclaration, status: FirDeclarationStatus): FirDeclarationStatus {
if (status.modality != null) return status if (status.modality != null) return status
return status.transform(modality = Modality.OPEN) return status.transform(modality = Modality.OPEN)
} }
override val mode: Mode override val mode: Mode
get() = Mode.ALL_IN_ANNOTATED_ELEMENT get() = Mode.ANNOTATED_ELEMENT
override val annotations: Set<AnnotationFqn> = override val directlyApplicableAnnotations: Set<AnnotationFqn>
setOf(FqName("org.jetbrains.kotlin.fir.allopen.AllOpen")) get() = setOf(ALL_OPEN)
override val metaAnnotations: Set<AnnotationFqn> = override val childrenApplicableAnnotations: Set<AnnotationFqn>
setOf(FqName("org.jetbrains.kotlin.fir.allopen.AllOpen")) get() = setOf(ALL_OPEN)
override val metaAnnotations: Map<AnnotationFqn, MetaAnnotationMode>
get() = mapOf(ALL_OPEN to MetaAnnotationMode.ANNOTATED_AND_CHILDREN)
} }