[PSI2IR, IR] Support functional types and literals for IR
This commit is contained in:
committed by
TeamCityServer
parent
910660a083
commit
155e7b211b
+6
-2
@@ -52,11 +52,15 @@ internal class KFunctionProxy(
|
||||
// TODO check arity
|
||||
var index = 0
|
||||
val dispatchReceiver = state.irFunction.dispatchReceiverParameter?.let { environment.convertToState(args[index++], it.type) }
|
||||
val contextReceiverParametersCount = state.irFunction.contextReceiverParametersCount
|
||||
val contextReceivers = state.irFunction.valueParameters.take(contextReceiverParametersCount).map {
|
||||
environment.convertToState(args[index++], it.type)
|
||||
}
|
||||
val extensionReceiver = state.irFunction.extensionReceiverParameter?.let { environment.convertToState(args[index++], it.type) }
|
||||
val argsVariables = state.irFunction.valueParameters.map { parameter ->
|
||||
val argsVariables = state.irFunction.valueParameters.drop(contextReceiverParametersCount).map { parameter ->
|
||||
environment.convertToState(args[index++], parameter.type)
|
||||
}
|
||||
val valueArguments = listOfNotNull(dispatchReceiver, extensionReceiver) + argsVariables
|
||||
val valueArguments = listOfNotNull(dispatchReceiver) + contextReceivers + listOfNotNull(extensionReceiver) + argsVariables
|
||||
return callInterceptor.interceptProxy(state.irFunction, valueArguments)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user