Bug fix for crash connected with "value-parameters"

This commit is contained in:
Konstantin Anisimov
2017-03-24 11:34:30 +07:00
committed by KonstantinAnisimov
parent 74116e7aed
commit c278853f10
@@ -145,6 +145,7 @@ internal class FunctionInlining(val context: Context): IrElementTransformerVoid(
}
//-------------------------------------------------------------------------//
fun inlineFunction(irCall: IrCall): IrExpression {
val functionDescriptor = irCall.descriptor as FunctionDescriptor
val originalDescriptor = functionDescriptor.original
@@ -401,8 +402,10 @@ internal class FunctionInlining(val context: Context): IrElementTransformerVoid(
val evaluationStatements = mutableListOf<IrStatement>()
val parameterToArgument = evaluateParameters(parametersOld, evaluationStatements)
val lambdaStatements = (lambdaFunction.body as IrBlockBody).statements
val lambdaReturnType = lambdaFunction.descriptor.returnType!!
val copyLambdaFunction = lambdaFunction.accept(InlineCopyIr(), // Create copy of the function.
null) as IrFunction
val lambdaStatements = (copyLambdaFunction.body as IrBlockBody).statements
val lambdaReturnType = copyLambdaFunction.descriptor.returnType!!
val inlineBody = IrInlineFunctionBody(0, 0, lambdaReturnType, null, lambdaStatements)
val transformer = ParametersTransformer(parameterToArgument, null, lambdaStatements)