[FIR] Remove AllOpen prefixes from fir plugin prototype entities

This commit is contained in:
Dmitriy Novozhilov
2021-10-11 17:03:15 +03:00
committed by TeamCityServer
parent b4d955838e
commit 7f836ee6c3
14 changed files with 28 additions and 29 deletions
@@ -40,5 +40,5 @@ class AllOpenStatusTransformer(session: FirSession) : FirStatusTransformerExtens
} }
override val key: FirPluginKey override val key: FirPluginKey
get() = AllOpenPluginKey get() = SomePluginKey
} }
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerExtension(session) { class AllPublicVisibilityTransformer(session: FirSession) : FirStatusTransformerExtension(session) {
companion object { companion object {
private val AllPublicClassId = ClassId(FqName("org.jetbrains.kotlin.fir.plugin"), Name.identifier("AllPublic")) private val AllPublicClassId = ClassId(FqName("org.jetbrains.kotlin.fir.plugin"), Name.identifier("AllPublic"))
private val VisibilityClassId = ClassId(FqName("org.jetbrains.kotlin.fir.plugin"), Name.identifier("Visibility")) private val VisibilityClassId = ClassId(FqName("org.jetbrains.kotlin.fir.plugin"), Name.identifier("Visibility"))
@@ -81,5 +81,5 @@ class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerEx
} }
override val key: FirPluginKey override val key: FirPluginKey
get() = AllOpenPluginKey get() = SomePluginKey
} }
@@ -12,14 +12,14 @@ import org.jetbrains.kotlin.fir.plugin.types.FirNumberSignAttributeExtension
class FirAllOpenComponentRegistrar : FirExtensionRegistrar() { class FirAllOpenComponentRegistrar : FirExtensionRegistrar() {
override fun ExtensionRegistrarContext.configurePlugin() { override fun ExtensionRegistrarContext.configurePlugin() {
+::AllOpenStatusTransformer +::AllOpenStatusTransformer
+::AllOpenVisibilityTransformer +::AllPublicVisibilityTransformer
+::AllOpenSupertypeGenerator +::SomeAdditionalSupertypeGenerator
+::AllOpenAdditionalCheckers +::PluginAdditionalCheckers
+::FirNumberSignAttributeExtension +::FirNumberSignAttributeExtension
// Declaration generators // Declaration generators
+::AllOpenTopLevelDeclarationsGenerator +::TopLevelDeclarationsGenerator
+::AllOpenClassGenerator +::ExternalClassGenerator
+::AllOpenMembersGenerator +::AdditionalMembersGenerator
} }
} }
@@ -15,9 +15,9 @@ import org.jetbrains.kotlin.fir.declarations.FirPluginKey
import org.jetbrains.kotlin.fir.plugin.checkers.DummyNameChecker import org.jetbrains.kotlin.fir.plugin.checkers.DummyNameChecker
import org.jetbrains.kotlin.fir.plugin.checkers.SignedNumberCallChecker import org.jetbrains.kotlin.fir.plugin.checkers.SignedNumberCallChecker
class AllOpenAdditionalCheckers(session: FirSession) : FirAdditionalCheckersExtension(session) { class PluginAdditionalCheckers(session: FirSession) : FirAdditionalCheckersExtension(session) {
override val key: FirPluginKey override val key: FirPluginKey
get() = AllOpenPluginKey get() = SomePluginKey
override val declarationCheckers: DeclarationCheckers = object : DeclarationCheckers() { override val declarationCheckers: DeclarationCheckers = object : DeclarationCheckers() {
override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker> override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker>
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.name.Name
/* /*
* Adds MyInterface supertype for all classes annotated with @D * Adds MyInterface supertype for all classes annotated with @D
*/ */
class AllOpenSupertypeGenerator(session: FirSession) : FirSupertypeGenerationExtension(session) { class SomeAdditionalSupertypeGenerator(session: FirSession) : FirSupertypeGenerationExtension(session) {
companion object { companion object {
private val myInterfaceClassId = ClassId(FqName("foo"), Name.identifier("MyInterface")) private val myInterfaceClassId = ClassId(FqName("foo"), Name.identifier("MyInterface"))
private val PREDICATE: DeclarationPredicate = has("D".fqn()) private val PREDICATE: DeclarationPredicate = has("D".fqn())
@@ -44,7 +44,7 @@ class AllOpenSupertypeGenerator(session: FirSession) : FirSupertypeGenerationExt
} }
override val key: FirPluginKey override val key: FirPluginKey
get() = AllOpenPluginKey get() = SomePluginKey
override fun needTransformSupertypes(declaration: FirClassLikeDeclaration): Boolean { override fun needTransformSupertypes(declaration: FirClassLikeDeclaration): Boolean {
return session.predicateBasedProvider.matches(PREDICATE, declaration) return session.predicateBasedProvider.matches(PREDICATE, declaration)
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.plugin
import org.jetbrains.kotlin.fir.declarations.FirPluginKey import org.jetbrains.kotlin.fir.declarations.FirPluginKey
object AllOpenPluginKey : FirPluginKey() { object SomePluginKey : FirPluginKey() {
override fun toString(): String { override fun toString(): String {
return "AllOpenPlugin" return "AllOpenPlugin"
} }
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.plugin.checkers
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirSimpleFunctionChecker import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirSimpleFunctionChecker
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
@@ -16,7 +15,7 @@ object DummyNameChecker : FirSimpleFunctionChecker() {
override fun check(declaration: FirSimpleFunction, context: CheckerContext, reporter: DiagnosticReporter) { override fun check(declaration: FirSimpleFunction, context: CheckerContext, reporter: DiagnosticReporter) {
val name = declaration.name.asString() val name = declaration.name.asString()
if (name == "dummy") { if (name == "dummy") {
reporter.reportOn(declaration.source, AllOpenErrors.FUNCTION_WITH_DUMMY_NAME, name, context) reporter.reportOn(declaration.source, PluginErrors.FUNCTION_WITH_DUMMY_NAME, name, context)
} }
} }
} }
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.SourceElementPositioningStr
import org.jetbrains.kotlin.fir.analysis.diagnostics.error2 import org.jetbrains.kotlin.fir.analysis.diagnostics.error2
import org.jetbrains.kotlin.fir.analysis.diagnostics.warning1 import org.jetbrains.kotlin.fir.analysis.diagnostics.warning1
object AllOpenErrors { object PluginErrors {
val FUNCTION_WITH_DUMMY_NAME by warning1<PsiElement, String>(SourceElementPositioningStrategies.DECLARATION_NAME) val FUNCTION_WITH_DUMMY_NAME by warning1<PsiElement, String>(SourceElementPositioningStrategies.DECLARATION_NAME)
val ILLEGAL_NUMBER_SIGN by error2<PsiElement, String, String>() val ILLEGAL_NUMBER_SIGN by error2<PsiElement, String, String>()
} }
@@ -26,7 +26,7 @@ object SignedNumberCallChecker : FirFunctionCallChecker() {
val actualSign = argument.typeRef.coneType.attributes.numberSign val actualSign = argument.typeRef.coneType.attributes.numberSign
if (expectedSign != actualSign) { if (expectedSign != actualSign) {
withSuppressedDiagnostics(argument, context) { withSuppressedDiagnostics(argument, context) {
reporter.reportOn(argument.source, AllOpenErrors.ILLEGAL_NUMBER_SIGN, expectedSign.asString(), actualSign.asString(), it) reporter.reportOn(argument.source, PluginErrors.ILLEGAL_NUMBER_SIGN, expectedSign.asString(), actualSign.asString(), it)
} }
} }
} }
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.name.Name
* - member fun materialize(): ClassName * - member fun materialize(): ClassName
* - nested class Nested with default constructor * - nested class Nested with default constructor
*/ */
class AllOpenMembersGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) { class AdditionalMembersGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
companion object { companion object {
private val MATERIALIZE_NAME = Name.identifier("materialize") private val MATERIALIZE_NAME = Name.identifier("materialize")
private val NESTED_NAME = Name.identifier("Nested") private val NESTED_NAME = Name.identifier("Nested")
@@ -38,7 +38,7 @@ import org.jetbrains.kotlin.name.Name
* *
* If there are no annotated classes then AllOpenGenerated class is not generated * If there are no annotated classes then AllOpenGenerated class is not generated
*/ */
class AllOpenClassGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) { class ExternalClassGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
companion object { companion object {
private val FOO_PACKAGE = FqName.topLevel(Name.identifier("foo")) private val FOO_PACKAGE = FqName.topLevel(Name.identifier("foo"))
private val GENERATED_CLASS_ID = ClassId(FOO_PACKAGE, Name.identifier("AllOpenGenerated")) private val GENERATED_CLASS_ID = ClassId(FOO_PACKAGE, Name.identifier("AllOpenGenerated"))
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
import org.jetbrains.kotlin.fir.extensions.predicate.has import org.jetbrains.kotlin.fir.extensions.predicate.has
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.plugin.AllOpenPluginKey import org.jetbrains.kotlin.fir.plugin.SomePluginKey
import org.jetbrains.kotlin.fir.plugin.fqn import org.jetbrains.kotlin.fir.plugin.fqn
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.name.Name
/* /*
* Generates `dummyClassName(value: ClassName): String` function for each class annotated with @A * Generates `dummyClassName(value: ClassName): String` function for each class annotated with @A
*/ */
class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) { class TopLevelDeclarationsGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
companion object { companion object {
private val PREDICATE: DeclarationPredicate = has("A".fqn()) private val PREDICATE: DeclarationPredicate = has("A".fqn())
} }
@@ -90,8 +90,8 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration
} }
} }
override val key: AllOpenPluginKey override val key: SomePluginKey
get() = AllOpenPluginKey get() = SomePluginKey
override fun needToGenerateAdditionalMembersInClass(klass: FirClass): Boolean { override fun needToGenerateAdditionalMembersInClass(klass: FirClass): Boolean {
return false return false
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotation import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotation
import org.jetbrains.kotlin.fir.expressions.impl.FirEmptyAnnotationArgumentMapping import org.jetbrains.kotlin.fir.expressions.impl.FirEmptyAnnotationArgumentMapping
import org.jetbrains.kotlin.fir.extensions.FirTypeAttributeExtension import org.jetbrains.kotlin.fir.extensions.FirTypeAttributeExtension
import org.jetbrains.kotlin.fir.plugin.AllOpenPluginKey import org.jetbrains.kotlin.fir.plugin.SomePluginKey
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
import org.jetbrains.kotlin.fir.types.ConeAttribute import org.jetbrains.kotlin.fir.types.ConeAttribute
import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.ConeClassLikeType
@@ -31,7 +31,7 @@ class FirNumberSignAttributeExtension(session: FirSession) : FirTypeAttributeExt
} }
override val key: FirPluginKey override val key: FirPluginKey
get() = AllOpenPluginKey get() = SomePluginKey
override fun extractAttributeFromAnnotation(annotation: FirAnnotation): ConeAttribute<*>? { override fun extractAttributeFromAnnotation(annotation: FirAnnotation): ConeAttribute<*>? {
val sign = when (annotation.annotationTypeRef.coneTypeSafe<ConeClassLikeType>()?.classId) { val sign = when (annotation.annotationTypeRef.coneTypeSafe<ConeClassLikeType>()?.classId) {
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.ir.plugin
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
import org.jetbrains.kotlin.fir.backend.IrPluginDeclarationOrigin import org.jetbrains.kotlin.fir.backend.IrPluginDeclarationOrigin
import org.jetbrains.kotlin.fir.plugin.generators.AllOpenClassGenerator import org.jetbrains.kotlin.fir.plugin.generators.ExternalClassGenerator
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl
@@ -41,7 +41,7 @@ private class Transformer(val context: IrPluginContext) : IrElementVisitorVoid {
override fun visitSimpleFunction(declaration: IrSimpleFunction) { override fun visitSimpleFunction(declaration: IrSimpleFunction) {
val origin = declaration.origin val origin = declaration.origin
if (origin !is IrPluginDeclarationOrigin || origin.pluginKey != AllOpenClassGenerator.Key) return if (origin !is IrPluginDeclarationOrigin || origin.pluginKey != ExternalClassGenerator.Key) return
require(declaration.body == null) require(declaration.body == null)
val constructedType = declaration.returnType as? IrSimpleType ?: return val constructedType = declaration.returnType as? IrSimpleType ?: return
val constructedClassSymbol = constructedType.classifier val constructedClassSymbol = constructedType.classifier
@@ -62,7 +62,7 @@ private class Transformer(val context: IrPluginContext) : IrElementVisitorVoid {
override fun visitConstructor(declaration: IrConstructor) { override fun visitConstructor(declaration: IrConstructor) {
val origin = declaration.origin val origin = declaration.origin
if (origin !is IrPluginDeclarationOrigin || origin.pluginKey != AllOpenClassGenerator.Key) return if (origin !is IrPluginDeclarationOrigin || origin.pluginKey != ExternalClassGenerator.Key) return
require(declaration.body == null) require(declaration.body == null)
val type = declaration.returnType as? IrSimpleType ?: return val type = declaration.returnType as? IrSimpleType ?: return