Deprecate ClassBuilderInterceptorExtension
ClassGeneratorExtension is supposed to be used instead.
This commit is contained in:
+9
-1
@@ -14,6 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@file:Suppress("DEPRECATION_ERROR")
|
||||||
|
|
||||||
package org.jetbrains.kotlin.codegen.extensions
|
package org.jetbrains.kotlin.codegen.extensions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.codegen.ClassBuilderFactory
|
import org.jetbrains.kotlin.codegen.ClassBuilderFactory
|
||||||
@@ -21,6 +23,12 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
|||||||
import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor
|
import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
|
|
||||||
|
@Deprecated(
|
||||||
|
"This extension is only supported in K1 and will not work properly in K2. " +
|
||||||
|
"Please migrate to org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension or " +
|
||||||
|
"org.jetbrains.kotlin.backend.jvm.extensions.ClassGeneratorExtension.",
|
||||||
|
level = DeprecationLevel.ERROR
|
||||||
|
)
|
||||||
interface ClassBuilderInterceptorExtension {
|
interface ClassBuilderInterceptorExtension {
|
||||||
companion object : ProjectExtensionDescriptor<ClassBuilderInterceptorExtension>(
|
companion object : ProjectExtensionDescriptor<ClassBuilderInterceptorExtension>(
|
||||||
"org.jetbrains.kotlin.classBuilderFactoryInterceptorExtension", ClassBuilderInterceptorExtension::class.java)
|
"org.jetbrains.kotlin.classBuilderFactoryInterceptorExtension", ClassBuilderInterceptorExtension::class.java)
|
||||||
@@ -31,4 +39,4 @@ interface ClassBuilderInterceptorExtension {
|
|||||||
diagnostics: DiagnosticSink
|
diagnostics: DiagnosticSink
|
||||||
): ClassBuilderFactory
|
): ClassBuilderFactory
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.codegen.*
|
|||||||
import org.jetbrains.kotlin.codegen.binding.CodegenBinding
|
import org.jetbrains.kotlin.codegen.binding.CodegenBinding
|
||||||
import org.jetbrains.kotlin.codegen.context.CodegenContext
|
import org.jetbrains.kotlin.codegen.context.CodegenContext
|
||||||
import org.jetbrains.kotlin.codegen.context.RootContext
|
import org.jetbrains.kotlin.codegen.context.RootContext
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassFileFactoryFinalizerExtension
|
import org.jetbrains.kotlin.codegen.extensions.ClassFileFactoryFinalizerExtension
|
||||||
import org.jetbrains.kotlin.codegen.inline.GlobalInlineContext
|
import org.jetbrains.kotlin.codegen.inline.GlobalInlineContext
|
||||||
import org.jetbrains.kotlin.codegen.inline.InlineCache
|
import org.jetbrains.kotlin.codegen.inline.InlineCache
|
||||||
@@ -405,14 +404,14 @@ class GenerationState private constructor(
|
|||||||
this.factory = ClassFileFactory(this, interceptedBuilderFactory, finalizers)
|
this.factory = ClassFileFactory(this, interceptedBuilderFactory, finalizers)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST", "DEPRECATION_ERROR")
|
||||||
private fun loadClassBuilderInterceptors(): List<ClassBuilderInterceptorExtension> {
|
private fun loadClassBuilderInterceptors(): List<org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension> {
|
||||||
// Using Class.forName here because we're in the old JVM backend, and we need to load extensions declared in the JVM IR backend.
|
// Using Class.forName here because we're in the old JVM backend, and we need to load extensions declared in the JVM IR backend.
|
||||||
val adapted = Class.forName("org.jetbrains.kotlin.backend.jvm.extensions.ClassBuilderExtensionAdapter")
|
val adapted = Class.forName("org.jetbrains.kotlin.backend.jvm.extensions.ClassBuilderExtensionAdapter")
|
||||||
.getDeclaredMethod("getExtensions", Project::class.java)
|
.getDeclaredMethod("getExtensions", Project::class.java)
|
||||||
.invoke(null, project) as List<ClassBuilderInterceptorExtension>
|
.invoke(null, project) as List<org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension>
|
||||||
|
|
||||||
return ClassBuilderInterceptorExtension.getInstances(project) + adapted
|
return org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension.getInstances(project) + adapted
|
||||||
}
|
}
|
||||||
|
|
||||||
fun beforeCompile() {
|
fun beforeCompile() {
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ import org.jetbrains.kotlin.cli.jvm.index.*
|
|||||||
import org.jetbrains.kotlin.cli.jvm.javac.JavacWrapperRegistrar
|
import org.jetbrains.kotlin.cli.jvm.javac.JavacWrapperRegistrar
|
||||||
import org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder
|
import org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleFinder
|
||||||
import org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleResolver
|
import org.jetbrains.kotlin.cli.jvm.modules.CliJavaModuleResolver
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassFileFactoryFinalizerExtension
|
import org.jetbrains.kotlin.codegen.extensions.ClassFileFactoryFinalizerExtension
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
|
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
|
||||||
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
|
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
|
||||||
@@ -637,7 +636,8 @@ class KotlinCoreEnvironment private constructor(
|
|||||||
ExpressionCodegenExtension.registerExtensionPoint(project)
|
ExpressionCodegenExtension.registerExtensionPoint(project)
|
||||||
SyntheticResolveExtension.registerExtensionPoint(project)
|
SyntheticResolveExtension.registerExtensionPoint(project)
|
||||||
SyntheticJavaResolveExtension.registerExtensionPoint(project)
|
SyntheticJavaResolveExtension.registerExtensionPoint(project)
|
||||||
ClassBuilderInterceptorExtension.registerExtensionPoint(project)
|
@Suppress("DEPRECATION_ERROR")
|
||||||
|
org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension.registerExtensionPoint(project)
|
||||||
ClassGeneratorExtension.registerExtensionPoint(project)
|
ClassGeneratorExtension.registerExtensionPoint(project)
|
||||||
ClassFileFactoryFinalizerExtension.registerExtensionPoint(project)
|
ClassFileFactoryFinalizerExtension.registerExtensionPoint(project)
|
||||||
AnalysisHandlerExtension.registerExtensionPoint(project)
|
AnalysisHandlerExtension.registerExtensionPoint(project)
|
||||||
|
|||||||
+5
-3
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.codegen.ClassBuilder
|
|||||||
import org.jetbrains.kotlin.codegen.ClassBuilderFactory
|
import org.jetbrains.kotlin.codegen.ClassBuilderFactory
|
||||||
import org.jetbrains.kotlin.codegen.DelegatingClassBuilder
|
import org.jetbrains.kotlin.codegen.DelegatingClassBuilder
|
||||||
import org.jetbrains.kotlin.codegen.DelegatingClassBuilderFactory
|
import org.jetbrains.kotlin.codegen.DelegatingClassBuilderFactory
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||||
@@ -30,11 +29,14 @@ import org.jetbrains.org.objectweb.asm.RecordComponentVisitor
|
|||||||
@Suppress("unused") // Used reflectively in GenerationState.
|
@Suppress("unused") // Used reflectively in GenerationState.
|
||||||
internal object ClassBuilderExtensionAdapter {
|
internal object ClassBuilderExtensionAdapter {
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun getExtensions(project: Project): List<ClassBuilderInterceptorExtension> =
|
@Suppress("DEPRECATION_ERROR")
|
||||||
|
fun getExtensions(project: Project): List<org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension> =
|
||||||
ClassGeneratorExtension.getInstances(project).map(::ExtensionAdapter)
|
ClassGeneratorExtension.getInstances(project).map(::ExtensionAdapter)
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ExtensionAdapter(private val extension: ClassGeneratorExtension) : ClassBuilderInterceptorExtension {
|
@Suppress("DEPRECATION_ERROR")
|
||||||
|
private class ExtensionAdapter(private val extension: ClassGeneratorExtension) :
|
||||||
|
org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension {
|
||||||
override fun interceptClassBuilderFactory(
|
override fun interceptClassBuilderFactory(
|
||||||
interceptedFactory: ClassBuilderFactory,
|
interceptedFactory: ClassBuilderFactory,
|
||||||
bindingContext: BindingContext,
|
bindingContext: BindingContext,
|
||||||
|
|||||||
+5
-2
@@ -14,6 +14,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Android-extensions is no longer supported, but its code is still used from AS.
|
||||||
|
@file:Suppress("DEPRECATION_ERROR")
|
||||||
|
|
||||||
package org.jetbrains.kotlin.android.synthetic.codegen
|
package org.jetbrains.kotlin.android.synthetic.codegen
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
@@ -22,7 +25,6 @@ import org.jetbrains.kotlin.codegen.AbstractClassBuilder
|
|||||||
import org.jetbrains.kotlin.codegen.ClassBuilder
|
import org.jetbrains.kotlin.codegen.ClassBuilder
|
||||||
import org.jetbrains.kotlin.codegen.ClassBuilderFactory
|
import org.jetbrains.kotlin.codegen.ClassBuilderFactory
|
||||||
import org.jetbrains.kotlin.codegen.DelegatingClassBuilder
|
import org.jetbrains.kotlin.codegen.DelegatingClassBuilder
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
@@ -34,7 +36,8 @@ import org.jetbrains.org.objectweb.asm.RecordComponentVisitor
|
|||||||
import org.jetbrains.org.objectweb.asm.Type
|
import org.jetbrains.org.objectweb.asm.Type
|
||||||
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter
|
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter
|
||||||
|
|
||||||
class ParcelableClinitClassBuilderInterceptorExtension : ClassBuilderInterceptorExtension {
|
class ParcelableClinitClassBuilderInterceptorExtension :
|
||||||
|
@Suppress("DEPRECATION_ERROR") org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension {
|
||||||
override fun interceptClassBuilderFactory(
|
override fun interceptClassBuilderFactory(
|
||||||
interceptedFactory: ClassBuilderFactory,
|
interceptedFactory: ClassBuilderFactory,
|
||||||
bindingContext: BindingContext,
|
bindingContext: BindingContext,
|
||||||
|
|||||||
+8
-4
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.android.synthetic.res.CliAndroidPackageFragmentProvi
|
|||||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
|
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
|
||||||
import org.jetbrains.kotlin.compiler.plugin.*
|
import org.jetbrains.kotlin.compiler.plugin.*
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
@@ -119,7 +118,10 @@ class AndroidComponentRegistrar : ComponentRegistrar {
|
|||||||
ExpressionCodegenExtension.registerExtension(project, ParcelableCodegenExtension())
|
ExpressionCodegenExtension.registerExtension(project, ParcelableCodegenExtension())
|
||||||
IrGenerationExtension.registerExtension(project, ParcelableIrGeneratorExtension())
|
IrGenerationExtension.registerExtension(project, ParcelableIrGeneratorExtension())
|
||||||
SyntheticResolveExtension.registerExtension(project, ParcelableResolveExtension())
|
SyntheticResolveExtension.registerExtension(project, ParcelableResolveExtension())
|
||||||
ClassBuilderInterceptorExtension.registerExtension(project, ParcelableClinitClassBuilderInterceptorExtension())
|
@Suppress("DEPRECATION_ERROR")
|
||||||
|
org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension.registerExtension(
|
||||||
|
project, ParcelableClinitClassBuilderInterceptorExtension()
|
||||||
|
)
|
||||||
StorageComponentContainerContributor.registerExtension(project, ParcelizeDeclarationCheckerComponentContainerContributor())
|
StorageComponentContainerContributor.registerExtension(project, ParcelizeDeclarationCheckerComponentContainerContributor())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,8 +152,10 @@ class AndroidComponentRegistrar : ComponentRegistrar {
|
|||||||
StorageComponentContainerContributor.registerExtension(project,
|
StorageComponentContainerContributor.registerExtension(project,
|
||||||
AndroidExtensionPropertiesComponentContainerContributor())
|
AndroidExtensionPropertiesComponentContainerContributor())
|
||||||
|
|
||||||
ClassBuilderInterceptorExtension.registerExtension(project,
|
@Suppress("DEPRECATION_ERROR")
|
||||||
CliAndroidOnDestroyClassBuilderInterceptorExtension(globalCacheImpl))
|
org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension.registerExtension(
|
||||||
|
project, CliAndroidOnDestroyClassBuilderInterceptorExtension(globalCacheImpl)
|
||||||
|
)
|
||||||
|
|
||||||
PackageFragmentProviderExtension.registerExtension(project,
|
PackageFragmentProviderExtension.registerExtension(project,
|
||||||
CliAndroidPackageFragmentProviderExtension(isExperimental))
|
CliAndroidPackageFragmentProviderExtension(isExperimental))
|
||||||
|
|||||||
+2
-2
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.codegen.ClassBuilder
|
|||||||
import org.jetbrains.kotlin.codegen.ClassBuilderFactory
|
import org.jetbrains.kotlin.codegen.ClassBuilderFactory
|
||||||
import org.jetbrains.kotlin.codegen.DelegatingClassBuilder
|
import org.jetbrains.kotlin.codegen.DelegatingClassBuilder
|
||||||
import org.jetbrains.kotlin.codegen.DelegatingClassBuilderFactory
|
import org.jetbrains.kotlin.codegen.DelegatingClassBuilderFactory
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
@@ -34,7 +33,8 @@ import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
|
|||||||
import org.jetbrains.org.objectweb.asm.MethodVisitor
|
import org.jetbrains.org.objectweb.asm.MethodVisitor
|
||||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
import org.jetbrains.org.objectweb.asm.Opcodes
|
||||||
|
|
||||||
abstract class AbstractAndroidOnDestroyClassBuilderInterceptorExtension : ClassBuilderInterceptorExtension {
|
abstract class AbstractAndroidOnDestroyClassBuilderInterceptorExtension :
|
||||||
|
@Suppress("DEPRECATION_ERROR") org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension {
|
||||||
override fun interceptClassBuilderFactory(
|
override fun interceptClassBuilderFactory(
|
||||||
interceptedFactory: ClassBuilderFactory,
|
interceptedFactory: ClassBuilderFactory,
|
||||||
bindingContext: BindingContext,
|
bindingContext: BindingContext,
|
||||||
|
|||||||
+1
-2
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension
|
|
||||||
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
|
import org.jetbrains.kotlin.codegen.extensions.ExpressionCodegenExtension
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
||||||
@@ -42,7 +41,7 @@ fun KtUsefulTestCase.createTestEnvironment(configuration: CompilerConfiguration,
|
|||||||
ExpressionCodegenExtension.registerExtension(project, CliAndroidExtensionsExpressionCodegenExtension(true, CacheImplementation.DEFAULT))
|
ExpressionCodegenExtension.registerExtension(project, CliAndroidExtensionsExpressionCodegenExtension(true, CacheImplementation.DEFAULT))
|
||||||
IrGenerationExtension.registerExtension(project, CliAndroidIrExtension(true, CacheImplementation.DEFAULT))
|
IrGenerationExtension.registerExtension(project, CliAndroidIrExtension(true, CacheImplementation.DEFAULT))
|
||||||
StorageComponentContainerContributor.registerExtension(project, AndroidExtensionPropertiesComponentContainerContributor())
|
StorageComponentContainerContributor.registerExtension(project, AndroidExtensionPropertiesComponentContainerContributor())
|
||||||
ClassBuilderInterceptorExtension.registerExtension(
|
@Suppress("DEPRECATION_ERROR") org.jetbrains.kotlin.codegen.extensions.ClassBuilderInterceptorExtension.registerExtension(
|
||||||
project, CliAndroidOnDestroyClassBuilderInterceptorExtension(CacheImplementation.DEFAULT)
|
project, CliAndroidOnDestroyClassBuilderInterceptorExtension(CacheImplementation.DEFAULT)
|
||||||
)
|
)
|
||||||
PackageFragmentProviderExtension.registerExtension(project, CliAndroidPackageFragmentProviderExtension(true))
|
PackageFragmentProviderExtension.registerExtension(project, CliAndroidPackageFragmentProviderExtension(true))
|
||||||
|
|||||||
Reference in New Issue
Block a user