[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.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<AnnotationFqn> =
setOf(FqName("org.jetbrains.kotlin.fir.allopen.WithClass"))
override val directlyApplicableAnnotations: Set<AnnotationFqn> = 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
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<AnnotationFqn> =
setOf(FqName("org.jetbrains.kotlin.fir.allopen.AllOpen"))
override val directlyApplicableAnnotations: Set<AnnotationFqn>
get() = setOf(ALL_OPEN)
override val metaAnnotations: Set<AnnotationFqn> =
setOf(FqName("org.jetbrains.kotlin.fir.allopen.AllOpen"))
override val childrenApplicableAnnotations: Set<AnnotationFqn>
get() = setOf(ALL_OPEN)
override val metaAnnotations: Map<AnnotationFqn, MetaAnnotationMode>
get() = mapOf(ALL_OPEN to MetaAnnotationMode.ANNOTATED_AND_CHILDREN)
}