diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt index 73d1d6222fa..bacb40bac3c 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MemberDeserializer.kt @@ -137,7 +137,9 @@ class MemberDeserializer(private val c: DeserializationContext) { } private fun DeserializedMemberDescriptor.versionAndReleaseCoroutinesMismatch(): Boolean = - c.components.configuration.releaseCoroutines && versionRequirements.none { it.version == VersionRequirement.Version(1, 3) } + c.components.configuration.releaseCoroutines && versionRequirements.none { + it.version == VersionRequirement.Version(1, 3) && it.kind == ProtoBuf.VersionRequirement.VersionKind.LANGUAGE_VERSION + } private fun loadOldFlags(oldFlags: Int): Int { val lowSixBits = oldFlags and 0x3f @@ -229,8 +231,7 @@ class MemberDeserializer(private val c: DeserializationContext) { descriptor.typeParameters.forEach { it.upperBounds } descriptor.isExperimentalCoroutineInReleaseEnvironment = local.typeDeserializer.experimentalSuspendFunctionTypeEncountered || ((c.containingDeclaration as? DeserializedClassDescriptor)?.c?.typeDeserializer?.experimentalSuspendFunctionTypeEncountered == true && - c.components.configuration.releaseCoroutines && - descriptor.versionRequirements.none { it.version == VersionRequirement.Version(1, 3) }) + descriptor.versionAndReleaseCoroutinesMismatch()) return descriptor }