IrDelegatingConstructorCall should have substituted descriptor
This commit is contained in:
@@ -239,6 +239,7 @@ class BodyGenerator(
|
||||
IrDelegatingConstructorCallImpl(
|
||||
ktElement.startOffset, ktElement.endOffset,
|
||||
context.symbolTable.referenceConstructor(anyConstructor),
|
||||
anyConstructor,
|
||||
null
|
||||
)
|
||||
)
|
||||
|
||||
@@ -103,7 +103,7 @@ class CallGenerator(statementGenerator: StatementGenerator): StatementGeneratorE
|
||||
val descriptor = call.descriptor as? ClassConstructorDescriptor
|
||||
?: throw AssertionError("Class constructor expected: ${call.descriptor}")
|
||||
val constructorSymbol = context.symbolTable.referenceConstructor(descriptor.original)
|
||||
val irCall = IrDelegatingConstructorCallImpl(startOffset, endOffset, constructorSymbol, getTypeArguments(call.original))
|
||||
val irCall = IrDelegatingConstructorCallImpl(startOffset, endOffset, constructorSymbol, descriptor, getTypeArguments(call.original))
|
||||
irCall.dispatchReceiver = dispatchReceiver?.load()
|
||||
irCall.extensionReceiver = extensionReceiver?.load()
|
||||
addParametersToCall(startOffset, endOffset, call, irCall, descriptor.builtIns.unitType)
|
||||
|
||||
+2
-2
@@ -29,6 +29,7 @@ class IrDelegatingConstructorCallImpl(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
override val symbol: IrConstructorSymbol,
|
||||
override val descriptor: ClassConstructorDescriptor,
|
||||
typeArguments: Map<TypeParameterDescriptor, KotlinType>? = null
|
||||
) : IrDelegatingConstructorCall,
|
||||
IrCallWithIndexedArgumentsBase(
|
||||
@@ -46,10 +47,9 @@ class IrDelegatingConstructorCallImpl(
|
||||
typeArguments: Map<TypeParameterDescriptor, KotlinType>? = null
|
||||
) : this(startOffset, endOffset,
|
||||
IrConstructorSymbolImpl(constructorDescriptor),
|
||||
constructorDescriptor,
|
||||
typeArguments)
|
||||
|
||||
override val descriptor: ClassConstructorDescriptor get() = symbol.descriptor
|
||||
|
||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||
return visitor.visitDelegatingConstructorCall(this, data)
|
||||
}
|
||||
|
||||
@@ -356,6 +356,7 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE
|
||||
IrDelegatingConstructorCallImpl(
|
||||
expression.startOffset, expression.endOffset,
|
||||
symbolsRemapper.getReferencedConstructor(expression.symbol),
|
||||
expression.descriptor,
|
||||
expression.getTypeArgumentsMap()
|
||||
).transformValueArguments(expression)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user