diff --git a/build-common/src/org/jetbrains/kotlin/incremental/CacheVersion.kt b/build-common/src/org/jetbrains/kotlin/incremental/CacheVersion.kt index e92abb40eeb..7b4ad78c691 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/CacheVersion.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/CacheVersion.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion import java.io.File import java.io.IOException -private val NORMAL_VERSION = 9 +private val NORMAL_VERSION = 10 private val DATA_CONTAINER_VERSION = 3 private val NORMAL_VERSION_FILE_NAME = "format-version.txt" diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.kt index a64fd8bcb53..c4631194392 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.kt @@ -84,8 +84,15 @@ class DeserializedDescriptorResolver { * or is run with a released language version. */ private val KotlinJvmBinaryClass.isPreReleaseInvisible: Boolean - get() = components.configuration.reportErrorsOnPreReleaseDependencies && - (classHeader.isPreRelease || classHeader.metadataVersion == KOTLIN_1_1_EAP_METADATA_VERSION) + get() = (components.configuration.reportErrorsOnPreReleaseDependencies && + (classHeader.isPreRelease || classHeader.metadataVersion == KOTLIN_1_1_EAP_METADATA_VERSION)) || + isCompiledWith13M1 + + // We report pre-release errors on .class files produced by 1.3-M1 even if this compiler is pre-release. This is needed because + // 1.3-M1 did not mangle names of functions mentioning inline classes yet, and we don't want to support this case in the codegen + private val KotlinJvmBinaryClass.isCompiledWith13M1: Boolean + get() = !components.configuration.skipMetadataVersionCheck && + classHeader.isPreRelease && classHeader.metadataVersion == KOTLIN_1_3_M1_METADATA_VERSION internal fun readData(kotlinClass: KotlinJvmBinaryClass, expectedKinds: Set): Array? { val header = kotlinClass.classHeader @@ -118,5 +125,7 @@ class DeserializedDescriptorResolver { setOf(KotlinClassHeader.Kind.FILE_FACADE, KotlinClassHeader.Kind.MULTIFILE_CLASS_PART) private val KOTLIN_1_1_EAP_METADATA_VERSION = JvmMetadataVersion(1, 1, 2) + + private val KOTLIN_1_3_M1_METADATA_VERSION = JvmMetadataVersion(1, 1, 11) } }