From 3294af5e49a56ec4b115076a014eaf39a63c5e7f Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Fri, 12 Mar 2021 15:41:27 +0300 Subject: [PATCH] Get correct irClass from class reference in case of reified parameter --- .../org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 3a3ce33934d..0174c5d9b1a 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 @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.interpreter.stack.Variable import org.jetbrains.kotlin.ir.interpreter.state.* import org.jetbrains.kotlin.ir.interpreter.state.reflection.* import org.jetbrains.kotlin.ir.symbols.IrSymbol +import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.impl.originalKotlinType import org.jetbrains.kotlin.ir.util.* @@ -905,7 +906,13 @@ class IrInterpreter(val irBuiltIns: IrBuiltIns, private val bodyMap: Map { // reified + val kTypeState = stack.getVariable(classReference.symbol).state as KTypeState + stack.pushReturnValue(KClassState(kTypeState.irType.classOrNull!!.owner, classReference.type.classOrNull!!.owner)) + } + else -> stack.pushReturnValue(KClassState(classReference)) + } return Next } } \ No newline at end of file