[IR] Mark IrConstructorImpl with an opt-in annotation
KT-59318
This commit is contained in:
committed by
Space Team
parent
2fab853700
commit
444dcae93d
+2
-1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.declarations.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.ir.IrImplementationDetail
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||
@@ -18,7 +19,7 @@ import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||
|
||||
class IrConstructorImpl(
|
||||
class IrConstructorImpl @IrImplementationDetail constructor(
|
||||
override val startOffset: Int,
|
||||
override val endOffset: Int,
|
||||
override var origin: IrDeclarationOrigin,
|
||||
|
||||
+7
-4
@@ -1142,14 +1142,17 @@ private class ObjCBlockPointerValuePassing(
|
||||
)
|
||||
irClass.addChild(blockHolderField)
|
||||
|
||||
val constructor = IrConstructorImpl(
|
||||
startOffset, endOffset,
|
||||
val constructor = context.irFactory.createConstructor(
|
||||
startOffset,
|
||||
endOffset,
|
||||
OBJC_BLOCK_FUNCTION_IMPL,
|
||||
IrConstructorSymbolImpl(),
|
||||
Name.special("<init>"),
|
||||
DescriptorVisibilities.PUBLIC,
|
||||
isInline = false,
|
||||
isExpect = false,
|
||||
irClass.defaultType,
|
||||
isInline = false, isExternal = false, isPrimary = true, isExpect = false
|
||||
IrConstructorSymbolImpl(),
|
||||
isPrimary = true,
|
||||
)
|
||||
irClass.addChild(constructor)
|
||||
|
||||
|
||||
+13
-5
@@ -11,11 +11,10 @@ import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.builders.IrBuilder
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrInstanceInitializerCallImpl
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
@@ -88,9 +87,18 @@ internal interface DescriptorToIrTranslationMixin {
|
||||
fun createConstructor(constructorDescriptor: ClassConstructorDescriptor): IrConstructor {
|
||||
val irConstructor = symbolTable.descriptorExtension.declareConstructor(constructorDescriptor) {
|
||||
with(constructorDescriptor) {
|
||||
IrConstructorImpl(
|
||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB, it, name, visibility,
|
||||
IrUninitializedType, isInline, isEffectivelyExternal(), isPrimary, isExpect
|
||||
symbolTable.irFactory.createConstructor(
|
||||
SYNTHETIC_OFFSET,
|
||||
SYNTHETIC_OFFSET,
|
||||
IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB,
|
||||
name,
|
||||
visibility,
|
||||
isInline,
|
||||
isExpect,
|
||||
IrUninitializedType,
|
||||
it,
|
||||
isPrimary,
|
||||
isEffectivelyExternal(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+17
-18
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.ir.IrStatement
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.*
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||
@@ -106,23 +105,23 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas
|
||||
val startOffset = constructor.startOffset
|
||||
val endOffset = constructor.endOffset
|
||||
val loweredConstructor =
|
||||
IrConstructorImpl(
|
||||
startOffset, endOffset,
|
||||
constructor.origin,
|
||||
IrConstructorSymbolImpl(),
|
||||
constructor.name,
|
||||
DescriptorVisibilities.PROTECTED,
|
||||
constructor.returnType,
|
||||
isInline = false,
|
||||
isExternal = false,
|
||||
isPrimary = constructor.isPrimary,
|
||||
isExpect = false
|
||||
).apply {
|
||||
parent = constructor.parent
|
||||
val body = constructor.body!!
|
||||
this.body = body // Will be transformed later.
|
||||
body.setDeclarationsParent(this)
|
||||
}
|
||||
context.irFactory.createConstructor(
|
||||
startOffset,
|
||||
endOffset,
|
||||
constructor.origin,
|
||||
constructor.name,
|
||||
DescriptorVisibilities.PROTECTED,
|
||||
isInline = false,
|
||||
isExpect = false,
|
||||
constructor.returnType,
|
||||
IrConstructorSymbolImpl(),
|
||||
isPrimary = constructor.isPrimary,
|
||||
).apply {
|
||||
parent = constructor.parent
|
||||
val body = constructor.body!!
|
||||
this.body = body // Will be transformed later.
|
||||
body.setDeclarationsParent(this)
|
||||
}
|
||||
|
||||
fun createSynthesizedValueParameter(index: Int, name: String, type: IrType): IrValueParameter =
|
||||
IrValueParameterImpl(
|
||||
|
||||
+6
-7
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.IrStatement
|
||||
import org.jetbrains.kotlin.ir.builders.*
|
||||
import org.jetbrains.kotlin.ir.builders.declarations.buildField
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.*
|
||||
@@ -420,17 +419,17 @@ internal class TestProcessor (val context: Context) {
|
||||
owner: IrClass,
|
||||
functions: Collection<TestFunction>,
|
||||
ignored: Boolean): IrConstructor =
|
||||
IrConstructorImpl(
|
||||
testSuite.owner.startOffset, testSuite.owner.endOffset,
|
||||
context.irFactory.createConstructor(
|
||||
testSuite.owner.startOffset,
|
||||
testSuite.owner.endOffset,
|
||||
TEST_SUITE_GENERATED_MEMBER,
|
||||
IrConstructorSymbolImpl(),
|
||||
Name.special("<init>"),
|
||||
DescriptorVisibilities.PUBLIC,
|
||||
testSuite.starProjectedType,
|
||||
isInline = false,
|
||||
isExternal = false,
|
||||
isExpect = false,
|
||||
testSuite.starProjectedType,
|
||||
IrConstructorSymbolImpl(),
|
||||
isPrimary = true,
|
||||
isExpect = false
|
||||
).apply {
|
||||
parent = owner
|
||||
|
||||
|
||||
Reference in New Issue
Block a user