Use JvmMetadataVersion where appropriate instead of bytecode version
This commit is contained in:
@@ -71,7 +71,7 @@ fun LazyJavaResolverContext.resolveKotlinBinaryClass(kotlinClass: KotlinJvmBinar
|
||||
val header = kotlinClass.classHeader
|
||||
return when {
|
||||
!header.metadataVersion.isCompatible() -> {
|
||||
components.errorReporter.reportIncompatibleAbiVersion(kotlinClass.classId, kotlinClass.location, header.metadataVersion)
|
||||
components.errorReporter.reportIncompatibleMetadataVersion(kotlinClass.classId, kotlinClass.location, header.metadataVersion)
|
||||
KotlinClassLookupResult.NotFound
|
||||
}
|
||||
header.kind == KotlinClassHeader.Kind.CLASS -> {
|
||||
|
||||
+1
-1
@@ -116,7 +116,7 @@ public final class DeserializedDescriptorResolver {
|
||||
public String[] readData(@NotNull KotlinJvmBinaryClass kotlinClass, @NotNull Set<KotlinClassHeader.Kind> expectedKinds) {
|
||||
KotlinClassHeader header = kotlinClass.getClassHeader();
|
||||
if (!header.getMetadataVersion().isCompatible()) {
|
||||
errorReporter.reportIncompatibleAbiVersion(kotlinClass.getClassId(), kotlinClass.getLocation(), header.getMetadataVersion());
|
||||
errorReporter.reportIncompatibleMetadataVersion(kotlinClass.getClassId(), kotlinClass.getLocation(), header.getMetadataVersion());
|
||||
}
|
||||
else if (expectedKinds.contains(header.getKind())) {
|
||||
return header.getAnnotationData();
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.load.kotlin
|
||||
|
||||
import org.jetbrains.kotlin.load.java.JvmBytecodeBinaryVersion
|
||||
import org.jetbrains.kotlin.serialization.jvm.JvmPackageTable
|
||||
import java.io.ByteArrayInputStream
|
||||
import java.io.DataInputStream
|
||||
@@ -28,22 +27,22 @@ class ModuleMapping private constructor(val packageFqName2Parts: Map<String, Pac
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmField val MAPPING_FILE_EXT: String = "kotlin_module"
|
||||
@JvmField
|
||||
val MAPPING_FILE_EXT: String = "kotlin_module"
|
||||
|
||||
@JvmField val EMPTY: ModuleMapping = ModuleMapping(emptyMap())
|
||||
@JvmField
|
||||
val EMPTY: ModuleMapping = ModuleMapping(emptyMap())
|
||||
|
||||
fun create(proto: ByteArray? = null): ModuleMapping {
|
||||
if (proto == null) {
|
||||
return EMPTY
|
||||
}
|
||||
|
||||
val inputStream = DataInputStream(ByteArrayInputStream(proto))
|
||||
val size = inputStream.readInt()
|
||||
|
||||
val version = JvmBytecodeBinaryVersion.create((0..size - 1).map { inputStream.readInt() }.toIntArray())
|
||||
val stream = DataInputStream(ByteArrayInputStream(proto))
|
||||
val version = JvmMetadataVersion.create(IntArray(stream.readInt()) { stream.readInt() })
|
||||
|
||||
if (version.isCompatible()) {
|
||||
val parseFrom = JvmPackageTable.PackageTable.parseFrom(inputStream)
|
||||
val parseFrom = JvmPackageTable.PackageTable.parseFrom(stream)
|
||||
if (parseFrom != null) {
|
||||
val packageFqNameParts = hashMapOf<String, PackageParts>()
|
||||
parseFrom.packagePartsList.forEach {
|
||||
|
||||
Reference in New Issue
Block a user