Remove JvmBytecodeBinaryVersion from the compiler code
Move it to build-common where it's still used in incremental compilation caches, and simplify a bit. In the future, it'll make sense to remove it completely and to avoid writing it to caches. In this commit, I don't do that to prevent the IC cache version to be updated, causing rebuilds for all JPS projects. #KT-41758
This commit is contained in:
@@ -30,7 +30,6 @@ public final class JvmAnnotationNames {
|
||||
public static final String METADATA_DESC = "L" + JvmClassName.byFqNameWithoutInnerClasses(METADATA_FQ_NAME).getInternalName() + ";";
|
||||
|
||||
public static final String METADATA_VERSION_FIELD_NAME = "mv";
|
||||
public static final String BYTECODE_VERSION_FIELD_NAME = "bv";
|
||||
public static final String KIND_FIELD_NAME = "k";
|
||||
public static final String METADATA_DATA_FIELD_NAME = "d1";
|
||||
public static final String METADATA_STRINGS_FIELD_NAME = "d2";
|
||||
|
||||
+1
-23
@@ -20,7 +20,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement;
|
||||
import org.jetbrains.kotlin.load.java.JvmAnnotationNames;
|
||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmBytecodeBinaryVersion;
|
||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion;
|
||||
import org.jetbrains.kotlin.name.ClassId;
|
||||
import org.jetbrains.kotlin.name.FqName;
|
||||
@@ -51,7 +50,6 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor
|
||||
}
|
||||
|
||||
private int[] metadataVersionArray = null;
|
||||
private JvmBytecodeBinaryVersion bytecodeVersion = null;
|
||||
private String extraString = null;
|
||||
private int extraInt = 0;
|
||||
private String packageName = null;
|
||||
@@ -79,17 +77,7 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor
|
||||
return null;
|
||||
}
|
||||
|
||||
return new KotlinClassHeader(
|
||||
headerKind,
|
||||
metadataVersion,
|
||||
bytecodeVersion != null ? bytecodeVersion : JvmBytecodeBinaryVersion.INSTANCE,
|
||||
data,
|
||||
incompatibleData,
|
||||
strings,
|
||||
extraString,
|
||||
extraInt,
|
||||
packageName
|
||||
);
|
||||
return new KotlinClassHeader(headerKind, metadataVersion, data, incompatibleData, strings, extraString, extraInt, packageName);
|
||||
}
|
||||
|
||||
private boolean shouldHaveData() {
|
||||
@@ -142,11 +130,6 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor
|
||||
metadataVersionArray = (int[]) value;
|
||||
}
|
||||
}
|
||||
else if (BYTECODE_VERSION_FIELD_NAME.equals(string)) {
|
||||
if (value instanceof int[]) {
|
||||
bytecodeVersion = new JvmBytecodeBinaryVersion((int[]) value);
|
||||
}
|
||||
}
|
||||
else if (METADATA_EXTRA_STRING_FIELD_NAME.equals(string)) {
|
||||
if (value instanceof String) {
|
||||
extraString = (String) value;
|
||||
@@ -227,11 +210,6 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor
|
||||
if ("version".equals(string)) {
|
||||
if (value instanceof int[]) {
|
||||
metadataVersionArray = (int[]) value;
|
||||
|
||||
// If there's no bytecode binary version in the class file, we assume it to be equal to the metadata version
|
||||
if (bytecodeVersion == null) {
|
||||
bytecodeVersion = new JvmBytecodeBinaryVersion((int[]) value);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ("multifileClassName".equals(string)) {
|
||||
|
||||
-2
@@ -8,13 +8,11 @@ package org.jetbrains.kotlin.load.kotlin.header
|
||||
import org.jetbrains.kotlin.load.java.JvmAnnotationNames.*
|
||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader.MultifileClassKind.DELEGATING
|
||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader.MultifileClassKind.INHERITING
|
||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmBytecodeBinaryVersion
|
||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmMetadataVersion
|
||||
|
||||
class KotlinClassHeader(
|
||||
val kind: Kind,
|
||||
val metadataVersion: JvmMetadataVersion,
|
||||
val bytecodeVersion: JvmBytecodeBinaryVersion,
|
||||
val data: Array<String>?,
|
||||
val incompatibleData: Array<String>?,
|
||||
val strings: Array<String>?,
|
||||
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.metadata.jvm.deserialization
|
||||
|
||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||
|
||||
/**
|
||||
* The version of conventions used in bytecode of generated .class files, such as default method naming & signatures,
|
||||
* internal member name mangling specifics, property getter/setter names, etc.
|
||||
*/
|
||||
class JvmBytecodeBinaryVersion(vararg numbers: Int) : BinaryVersion(*numbers) {
|
||||
override fun isCompatible() = this.isCompatibleTo(INSTANCE)
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val INSTANCE = JvmBytecodeBinaryVersion(1, 0, 3)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user