Deep copy fixes + sanitize file names for module dumps

This commit is contained in:
Dmitry Petrov
2017-05-04 13:51:17 +03:00
parent 506941e7e0
commit d5feb2d6f4
4 changed files with 8 additions and 3 deletions
@@ -94,9 +94,13 @@ open class DeepCopyIrTree : IrElementTransformerVoid() {
mapClassDeclaration(declaration.descriptor),
declaration.declarations.map { it.transform() }
).apply {
thisReceiver = declaration.thisReceiver?.withDescriptor(descriptor.thisAsReceiverParameter)
transformTypeParameters(declaration, descriptor.declaredTypeParameters)
}
private fun IrValueParameter.withDescriptor(newDescriptor: ParameterDescriptor) =
IrValueParameterImpl(startOffset, endOffset, origin, newDescriptor, defaultValue?.transform())
override fun visitTypeAlias(declaration: IrTypeAlias): IrTypeAlias =
IrTypeAliasImpl(
declaration.startOffset, declaration.endOffset,
@@ -421,7 +425,7 @@ open class DeepCopyIrTree : IrElementTransformerVoid() {
newProperty, newFieldSymbol, newGetterSymbol, newSetterSymbol,
expression.transformTypeArguments(newProperty),
mapStatementOrigin(expression.origin)
)
).transformValueArguments(expression)
}
override fun visitLocalDelegatedPropertyReference(expression: IrLocalDelegatedPropertyReference): IrExpression {