diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorSerializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorSerializer.kt index d3ec0a6b47f..c311d65de44 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorSerializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorSerializer.kt @@ -84,6 +84,12 @@ internal class IrDescriptorSerializer( val typeParameters = descriptor.propertyIfAccessor.typeParameters typeParameters.forEach { proto.addTypeParameter(serializeDescriptor(it)) + // We explicitly serialize type parameters + // as types here so that they are interned in the + // natural order of declaration. Otherwise + // they appear in the order of appearence in the + // body of the function, and get wrong indices. + typeSerializer(it.defaultType) } descriptor.valueParameters.forEach {