IrDelegatingConstructorCall should have substituted descriptor

This commit is contained in:
Dmitry Petrov
2017-04-21 12:10:38 +03:00
parent 6e79709ef1
commit 6f2c8140cf
5 changed files with 13 additions and 4 deletions
@@ -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)