diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt index baaecafcb6f..8ff658747ad 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt @@ -17,7 +17,10 @@ import org.jetbrains.kotlin.ir.interpreter.proxy.Proxy import org.jetbrains.kotlin.ir.interpreter.stack.CallStack import org.jetbrains.kotlin.ir.interpreter.stack.Field import org.jetbrains.kotlin.ir.interpreter.state.* -import org.jetbrains.kotlin.ir.interpreter.state.reflection.* +import org.jetbrains.kotlin.ir.interpreter.state.reflection.KClassState +import org.jetbrains.kotlin.ir.interpreter.state.reflection.KFunctionState +import org.jetbrains.kotlin.ir.interpreter.state.reflection.KPropertyState +import org.jetbrains.kotlin.ir.interpreter.state.reflection.KTypeState import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* @@ -171,8 +174,8 @@ class IrInterpreter(internal val environment: IrInterpreterEnvironment, internal if (irFunction.isLocal) callStack.copyUpValuesFromPreviousFrame() // 5. store arguments in memory (remap args on actual names) - irFunction.getDispatchReceiver()?.let { callStack.storeState(it, dispatchReceiver!!) } - irFunction.getExtensionReceiver()?.let { callStack.storeState(it, extensionReceiver ?: callStack.loadState(it)) } + irFunction.getDispatchReceiver()?.let { callStack.storeState(it, dispatchReceiver) } + irFunction.getExtensionReceiver()?.let { callStack.storeState(it, extensionReceiver) } irFunction.valueParameters.forEachIndexed { i, param -> callStack.storeState(param.symbol, valueArguments[i]) } // `call.type` is used in check cast and emptyArray callStack.storeState(irFunction.symbol, KTypeState(call.type, environment.kTypeClass.owner))