EnumConstructorCall.fromSymbolDescriptor
This commit is contained in:
@@ -269,7 +269,7 @@ class BodyGenerator(
|
||||
private fun generateEnumSuperConstructorCall(body: IrBlockBody, ktElement: KtElement, classDescriptor: ClassDescriptor) {
|
||||
val enumConstructor = context.builtIns.enum.constructors.single()
|
||||
body.statements.add(
|
||||
IrEnumConstructorCallImpl(
|
||||
IrEnumConstructorCallImpl.fromSymbolDescriptor(
|
||||
ktElement.startOffsetSkippingComments, ktElement.endOffset,
|
||||
context.irBuiltIns.unitType,
|
||||
context.symbolTable.referenceConstructor(enumConstructor),
|
||||
@@ -287,7 +287,7 @@ class BodyGenerator(
|
||||
fun generateEnumEntryInitializer(ktEnumEntry: KtEnumEntry, enumEntryDescriptor: ClassDescriptor): IrExpression {
|
||||
if (ktEnumEntry.declarations.isNotEmpty()) {
|
||||
val enumEntryConstructor = enumEntryDescriptor.unsubstitutedPrimaryConstructor!!
|
||||
return IrEnumConstructorCallImpl(
|
||||
return IrEnumConstructorCallImpl.fromSymbolDescriptor(
|
||||
ktEnumEntry.startOffsetSkippingComments, ktEnumEntry.endOffset,
|
||||
context.irBuiltIns.unitType,
|
||||
context.symbolTable.referenceConstructor(enumEntryConstructor),
|
||||
|
||||
+11
-9
@@ -34,16 +34,18 @@ class IrEnumConstructorCallImpl(
|
||||
override val origin: IrStatementOrigin?
|
||||
get() = null
|
||||
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
constructor(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
type: IrType,
|
||||
symbol: IrConstructorSymbol,
|
||||
typeArgumentsCount: Int
|
||||
) : this(startOffset, endOffset, type, symbol, typeArgumentsCount, symbol.descriptor.valueParameters.size)
|
||||
|
||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||
return visitor.visitEnumConstructorCall(this, data)
|
||||
}
|
||||
|
||||
companion object {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
fun fromSymbolDescriptor(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
type: IrType,
|
||||
symbol: IrConstructorSymbol,
|
||||
typeArgumentsCount: Int
|
||||
) = IrEnumConstructorCallImpl(startOffset, endOffset, type, symbol, typeArgumentsCount, symbol.descriptor.valueParameters.size)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -567,7 +567,8 @@ open class DeepCopyIrTreeWithSymbols(
|
||||
expression.startOffset, expression.endOffset,
|
||||
expression.type.remapType(),
|
||||
newConstructor,
|
||||
expression.typeArgumentsCount
|
||||
expression.typeArgumentsCount,
|
||||
expression.valueArgumentsCount
|
||||
).apply {
|
||||
copyRemappedTypeArgumentsFrom(expression)
|
||||
transformValueArguments(expression)
|
||||
|
||||
Reference in New Issue
Block a user