From e9b207595aa44424773f2b73e158653b52da7820 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Wed, 5 Apr 2017 12:13:27 +0300 Subject: [PATCH] Inline: correct set of super class for ClassDescriptor --- .../kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt index a6515a0b11f..f3871e75464 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt @@ -42,6 +42,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassOrAny import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.TypeProjectionImpl import org.jetbrains.kotlin.types.TypeSubstitutor @@ -244,12 +245,14 @@ internal class DeepCopyIrTreeWithDescriptors(val targetFunction: IrFunction, typ private fun copyClassDescriptor(oldDescriptor: ClassDescriptor): ClassDescriptorImpl { + val oldSuperClass = oldDescriptor.getSuperClassOrAny() + val newSuperClass = descriptorSubstituteMap.getOrDefault(oldSuperClass, oldSuperClass) as ClassDescriptor return ClassDescriptorImpl( targetFunction.descriptor, generateName(oldDescriptor.name), oldDescriptor.modality, oldDescriptor.kind, - listOf(context.builtIns.anyType), // TODO get list of real supertypes + listOf(newSuperClass.defaultType), oldDescriptor.source, oldDescriptor.isExternal )