Inline: correct set of super class for ClassDescriptor

This commit is contained in:
Igor Chevdar
2017-04-05 12:13:27 +03:00
parent 962b7905c6
commit e9b207595a
@@ -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
)