Mark PureIrGenerationExtension as deprecated to prevent more usages

The IR plugin extension mechanism is being reworked and in the new
scheme, this new extension point won't be necessary.
This commit is contained in:
Alexander Udalov
2020-05-06 22:48:14 +02:00
parent 9fc210224d
commit 7a369b3a6a
5 changed files with 16 additions and 18 deletions
@@ -34,9 +34,6 @@ import com.intellij.openapi.extensions.ExtensionsArea
import com.intellij.openapi.fileTypes.PlainTextFileType
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.util.JDOMUtil
import com.intellij.openapi.util.NotNullLazyValue
import com.intellij.openapi.util.SystemInfo
import com.intellij.openapi.util.io.FileUtilRt
import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.vfs.*
@@ -57,7 +54,6 @@ import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
import org.jetbrains.kotlin.asJava.classes.FacadeCache
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.common.extensions.PureIrGenerationExtension
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.CliModuleVisibilityManagerImpl
import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY
@@ -108,10 +104,7 @@ import org.jetbrains.kotlin.resolve.lazy.declarations.CliDeclarationProviderFact
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
import org.jetbrains.kotlin.utils.PathUtil
import java.io.File
import java.lang.reflect.Field
import java.lang.reflect.Modifier
import java.util.zip.ZipFile
import javax.xml.stream.XMLInputFactory
class KotlinCoreEnvironment private constructor(
val projectEnvironment: JavaCoreProjectEnvironment,
@@ -557,7 +550,8 @@ class KotlinCoreEnvironment private constructor(
CollectAdditionalSourcesExtension.registerExtensionPoint(project)
ExtraImportsProviderExtension.registerExtensionPoint(project)
IrGenerationExtension.registerExtensionPoint(project)
PureIrGenerationExtension.registerExtensionPoint(project)
@Suppress("DEPRECATION_ERROR")
org.jetbrains.kotlin.backend.common.extensions.PureIrGenerationExtension.registerExtensionPoint(project)
ScriptEvaluationExtension.registerExtensionPoint(project)
ShellExtension.registerExtensionPoint(project)
TypeResolutionInterceptor.registerExtensionPoint(project)
@@ -11,10 +11,8 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor
import org.jetbrains.kotlin.ir.builders.IrGeneratorContext
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.ir.util.IrExtensionGenerator
import org.jetbrains.kotlin.ir.util.SymbolTable
import org.jetbrains.kotlin.ir.util.TypeTranslator
@@ -41,9 +39,13 @@ interface IrGenerationExtension : IrExtensionGenerator {
}
// Extension point for plugins which run before any lowerings, but after the Ir has been constructed.
@Deprecated("This is a temporary class which will be replaced with another extension mechanism soon.", level = DeprecationLevel.ERROR)
interface PureIrGenerationExtension {
@Suppress("DEPRECATION_ERROR")
companion object :
ProjectExtensionDescriptor<PureIrGenerationExtension>("org.jetbrains.kotlin.pureIrGenerationExtension", PureIrGenerationExtension::class.java)
ProjectExtensionDescriptor<PureIrGenerationExtension>(
"org.jetbrains.kotlin.pureIrGenerationExtension", PureIrGenerationExtension::class.java
)
fun generate(
moduleFragment: IrModuleFragment,
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.backend.jvm
import org.jetbrains.kotlin.backend.common.CodegenUtil
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
import org.jetbrains.kotlin.backend.common.extensions.PureIrGenerationExtension
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen
import org.jetbrains.kotlin.backend.jvm.lower.MultifileFacadeFileEntry
@@ -106,7 +105,8 @@ object JvmBackendFacade {
context.typeMapper.mapType(context.referenceClass(descriptor).defaultType)
}
for (extension in PureIrGenerationExtension.getInstances(state.project)) {
@Suppress("DEPRECATION_ERROR")
for (extension in org.jetbrains.kotlin.backend.common.extensions.PureIrGenerationExtension.getInstances(state.project)) {
extension.generate(irModuleFragment, context)
}
@@ -8,10 +8,10 @@ package org.jetbrains.kotlin.android.parcel
import org.jetbrains.kotlin.android.parcel.ir.AndroidSymbols
import org.jetbrains.kotlin.android.parcel.ir.ParcelableIrTransformer
import org.jetbrains.kotlin.backend.common.CommonBackendContext
import org.jetbrains.kotlin.backend.common.extensions.PureIrGenerationExtension
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
class ParcelableIrGeneratorExtension : PureIrGenerationExtension {
@Suppress("DEPRECATION_ERROR")
class ParcelableIrGeneratorExtension : org.jetbrains.kotlin.backend.common.extensions.PureIrGenerationExtension {
override fun generate(moduleFragment: IrModuleFragment, context: CommonBackendContext) {
ParcelableIrTransformer(context, AndroidSymbols(context, moduleFragment)).transform(moduleFragment)
}
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.android.synthetic.res.AndroidVariant
import org.jetbrains.kotlin.android.synthetic.res.CliAndroidLayoutXmlFileManager
import org.jetbrains.kotlin.android.synthetic.res.CliAndroidPackageFragmentProviderExtension
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.common.extensions.PureIrGenerationExtension
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
import org.jetbrains.kotlin.compiler.plugin.*
@@ -41,8 +40,8 @@ import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
import org.jetbrains.kotlin.platform.jvm.isJvm
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
import org.jetbrains.kotlin.resolve.jvm.extensions.PackageFragmentProviderExtension
import org.jetbrains.kotlin.utils.decodePluginOptions
@@ -105,7 +104,10 @@ class AndroidComponentRegistrar : ComponentRegistrar {
companion object {
fun registerParcelExtensions(project: Project) {
ExpressionCodegenExtension.registerExtension(project, ParcelableCodegenExtension())
PureIrGenerationExtension.registerExtension(project, ParcelableIrGeneratorExtension())
@Suppress("DEPRECATION_ERROR")
org.jetbrains.kotlin.backend.common.extensions.PureIrGenerationExtension.registerExtension(
project, ParcelableIrGeneratorExtension()
)
SyntheticResolveExtension.registerExtension(project, ParcelableResolveExtension())
ClassBuilderInterceptorExtension.registerExtension(project, ParcelableClinitClassBuilderInterceptorExtension())
}