Closure conversion: simple tests work.

This commit is contained in:
Dmitry Petrov
2016-10-03 16:19:09 +03:00
parent 6bd27e52bc
commit 5ee2f87c4a
15 changed files with 425 additions and 44 deletions
@@ -54,3 +54,10 @@ inline fun <T : IrMemberAccessExpression> T.mapValueParameters(transform: (Value
return this
}
inline fun <T : IrMemberAccessExpression> T.mapValueParametersIndexed(transform: (Int, ValueParameterDescriptor) -> IrExpression?): T {
descriptor.valueParameters.forEach {
putValueArgument(it.index, transform(it.index, it))
}
return this
}
@@ -51,7 +51,6 @@ open class DeepCopyIrTree : IrElementTransformerVoid() {
protected open fun mapValueReference(descriptor: ValueDescriptor) = descriptor
protected open fun mapVariableReference(descriptor: VariableDescriptor) = descriptor
protected open fun mapPropertyReference(descriptor: PropertyDescriptor) = descriptor
protected open fun mapReceiverParameterReference(descriptor: ReceiverParameterDescriptor) = descriptor
protected open fun mapCallee(descriptor: CallableDescriptor) = descriptor
protected open fun mapDelegatedConstructorCallee(descriptor: ClassConstructorDescriptor) = descriptor
protected open fun mapEnumConstructorCallee(descriptor: ClassConstructorDescriptor) = descriptor