IR: annotate obsolete API in IrPluginContext with ObsoleteDescriptorBasedAPI

This commit is contained in:
Alexander Udalov
2020-08-13 18:57:24 +02:00
parent 9961bd1fe1
commit 256f4449ce
9 changed files with 18 additions and 19 deletions
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.common.extensions
import org.jetbrains.kotlin.backend.common.ir.BuiltinSymbolsBase
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.IrGeneratorContext
import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.util.ReferenceSymbolTable
@@ -19,16 +20,16 @@ import org.jetbrains.kotlin.resolve.BindingContext
interface IrPluginContext : IrGeneratorContext {
val languageVersionSettings: LanguageVersionSettings
@Deprecated("FrontEnd API shouldn't be accessed in Ir plugin environment")
@ObsoleteDescriptorBasedAPI
val moduleDescriptor: ModuleDescriptor
@Deprecated("FrontEnd API shouldn't be accessed in Ir plugin environment")
@ObsoleteDescriptorBasedAPI
val bindingContext: BindingContext
@Deprecated("FrontEnd API shouldn't be accessed in Ir plugin environment")
@ObsoleteDescriptorBasedAPI
val symbolTable: ReferenceSymbolTable
@Deprecated("FrontEnd API shouldn't be accessed in Ir plugin environment")
@ObsoleteDescriptorBasedAPI
val typeTranslator: TypeTranslator
val symbols: BuiltinSymbolsBase
@@ -42,4 +43,3 @@ interface IrPluginContext : IrGeneratorContext {
fun referenceFunctions(fqName: FqName): Collection<IrSimpleFunctionSymbol>
fun referenceProperties(fqName: FqName): Collection<IrPropertySymbol>
}
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.IrConstructor
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
import org.jetbrains.kotlin.ir.linkage.IrDeserializer
@@ -22,11 +23,13 @@ import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.scopes.MemberScope
open class IrPluginContextImpl(
open class IrPluginContextImpl constructor(
private val module: ModuleDescriptor,
@OptIn(ObsoleteDescriptorBasedAPI::class)
override val bindingContext: BindingContext,
override val languageVersionSettings: LanguageVersionSettings,
private val st: ReferenceSymbolTable,
@OptIn(ObsoleteDescriptorBasedAPI::class)
override val typeTranslator: TypeTranslator,
override val irBuiltIns: IrBuiltIns,
val linker: IrDeserializer,
@@ -35,7 +38,9 @@ open class IrPluginContextImpl(
override val platform: TargetPlatform? = module.platform
@OptIn(ObsoleteDescriptorBasedAPI::class)
override val moduleDescriptor: ModuleDescriptor = module
@OptIn(ObsoleteDescriptorBasedAPI::class)
override val symbolTable: ReferenceSymbolTable = st
private fun resolveMemberScope(fqName: FqName): MemberScope? {
@@ -76,6 +76,7 @@
<jvmTarget>1.8</jvmTarget>
<args>
<arg>-Xjvm-default=enable</arg>
<arg>-Xopt-in=org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI</arg>
</args>
</configuration>
</plugin>
@@ -36,6 +36,12 @@ sourceSets {
"test" { projectDefault() }
}
tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>> {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI"
}
}
runtimeJar()
sourcesJar()
javadocJar()
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.backend.common.deepCopyWithVariables
import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotations
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.*
@@ -36,7 +35,6 @@ import org.jetbrains.kotlinx.serialization.compiler.backend.jvm.*
import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationPluginContext
import org.jetbrains.kotlinx.serialization.compiler.resolve.*
@OptIn(ObsoleteDescriptorBasedAPI::class)
interface IrBuilderExtension {
val compilerContext: SerializationPluginContext
@@ -7,7 +7,6 @@ package org.jetbrains.kotlinx.serialization.compiler.backend.ir
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope
import org.jetbrains.kotlin.ir.builders.irGet
import org.jetbrains.kotlin.ir.builders.irInt
@@ -29,7 +28,6 @@ import org.jetbrains.kotlinx.serialization.compiler.backend.common.findTypeSeria
import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationPluginContext
import org.jetbrains.kotlinx.serialization.compiler.resolve.*
@OptIn(ObsoleteDescriptorBasedAPI::class)
class SerializableCompanionIrGenerator(
val irClass: IrClass,
override val compilerContext: SerializationPluginContext,
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.codegen.CompilationException
import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrExpression
@@ -30,7 +29,6 @@ import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationPlug
import org.jetbrains.kotlinx.serialization.compiler.resolve.*
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.MISSING_FIELD_EXC
@OptIn(ObsoleteDescriptorBasedAPI::class)
class SerializableIrGenerator(
val irClass: IrClass,
override val compilerContext: SerializationPluginContext,
@@ -7,20 +7,16 @@ package org.jetbrains.kotlinx.serialization.compiler.backend.ir
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.declarations.IrClass
import org.jetbrains.kotlin.ir.declarations.IrProperty
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
import org.jetbrains.kotlin.ir.declarations.IrVariable
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
import org.jetbrains.kotlin.ir.types.isSubtypeOfClass
import org.jetbrains.kotlin.ir.util.defaultType
import org.jetbrains.kotlin.ir.util.functions
import org.jetbrains.kotlin.ir.util.properties
import org.jetbrains.kotlin.ir.util.referenceFunction
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.DescriptorUtils
@@ -28,7 +24,6 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationPluginContext
import org.jetbrains.kotlinx.serialization.compiler.resolve.*
@OptIn(ObsoleteDescriptorBasedAPI::class)
class SerializerForEnumsGenerator(
irClass: IrClass,
compilerContext: SerializationPluginContext,
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder
import org.jetbrains.kotlin.backend.common.lower.irIfThen
import org.jetbrains.kotlin.backend.common.lower.irThrow
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
@@ -45,7 +44,6 @@ import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.UN
// Is creating synthetic origin is a good idea or not?
object SERIALIZABLE_PLUGIN_ORIGIN : IrDeclarationOriginImpl("SERIALIZER")
@OptIn(ObsoleteDescriptorBasedAPI::class)
open class SerializerIrGenerator(val irClass: IrClass, final override val compilerContext: SerializationPluginContext, bindingContext: BindingContext) :
SerializerCodegen(irClass.descriptor, bindingContext), IrBuilderExtension {