diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/IrBuiltInsMapGenerated.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/IrBuiltInsMapGenerated.kt index db0857f5a9d..c056b140747 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/IrBuiltInsMapGenerated.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/builtins/IrBuiltInsMapGenerated.kt @@ -165,6 +165,12 @@ internal fun interpretUnaryFunction(name: String, type: String, a: Any?): Any? { "String" -> return (a as String).length "CharSequence" -> return (a as CharSequence).length } + "cause" -> when (type) { + "Throwable" -> return (a as Throwable).cause + } + "message" -> when (type) { + "Throwable" -> return (a as Throwable).message + } "size" -> when (type) { "BooleanArray" -> return (a as BooleanArray).size "CharArray" -> return (a as CharArray).size diff --git a/generators/interpreter/GenerateInterpreterMap.kt b/generators/interpreter/GenerateInterpreterMap.kt index f2594d5cdf0..7afffd2f80e 100644 --- a/generators/interpreter/GenerateInterpreterMap.kt +++ b/generators/interpreter/GenerateInterpreterMap.kt @@ -186,7 +186,9 @@ private fun getOperationMap(argumentsCount: Int): MutableList { val operationMap = mutableListOf() val allPrimitiveTypes = PrimitiveType.values().map { builtIns.getBuiltInClassByFqName(it.typeFqName) } val arrays = PrimitiveType.values().map { builtIns.getPrimitiveArrayClassDescriptor(it) } + builtIns.array - val additionalBuiltIns = listOf(builtIns.string, builtIns.any, builtIns.charSequence, builtIns.number, builtIns.comparable) + val additionalBuiltIns = listOf( + builtIns.string, builtIns.any, builtIns.charSequence, builtIns.number, builtIns.comparable, builtIns.throwable + ) fun CallableDescriptor.isFakeOverride(classDescriptor: ClassDescriptor): Boolean { val isPrimitive = KotlinBuiltIns.isPrimitiveClass(classDescriptor) || KotlinBuiltIns.isString(classDescriptor.defaultType)