kotlinx-metadata-jvm: remove bytecodeVersion from write methods

Bytecode version has never been used meaningfully in Kotlin, and will be
removed in a future release, so there's no point in using it. See
KT-41758.
This commit is contained in:
Alexander Udalov
2020-10-13 09:27:29 +02:00
parent 90d66b0ba5
commit 5d7d9beb0d
2 changed files with 11 additions and 21 deletions
@@ -2,6 +2,7 @@
## 0.1.1
- Breaking change: `KotlinClassMetadata.*.Writer.write` no longer accept `bytecodeVersion`.
- [`KT-42429`](https://youtrack.jetbrains.com/issue/KT-42429) Wrong interpretation of Flag.Constructor.IS_PRIMARY
- Breaking change: `Flag.Constructor.IS_PRIMARY` is deprecated, use `Flag.Constructor.IS_SECONDARY` instead
- [`KT-37421`](https://youtrack.jetbrains.com/issue/KT-37421) Add Flag.Class.IS_FUN for functional interfaces
@@ -58,20 +58,18 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
*
* @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default
* @param bytecodeVersion bytecode version to be written to the metadata (see [KotlinClassHeader.bytecodeVersion]),
* [KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION] by default
* @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default
*/
@JvmOverloads
fun write(
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0
): Class {
val (d1, d2) = writeProtoBufData(t.build(), c)
val metadata = KotlinClassHeader(
KotlinClassHeader.CLASS_KIND, metadataVersion, bytecodeVersion, d1, d2, null, null, extraInt
KotlinClassHeader.CLASS_KIND, metadataVersion, KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
d1, d2, null, null, extraInt
)
return Class(metadata)
}
@@ -113,20 +111,18 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
*
* @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default
* @param bytecodeVersion bytecode version to be written to the metadata (see [KotlinClassHeader.bytecodeVersion]),
* [KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION] by default
* @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default
*/
@JvmOverloads
fun write(
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0
): FileFacade {
val (d1, d2) = writeProtoBufData(t.build(), c)
val metadata = KotlinClassHeader(
KotlinClassHeader.FILE_FACADE_KIND, metadataVersion, bytecodeVersion, d1, d2, null, null, extraInt
KotlinClassHeader.FILE_FACADE_KIND, metadataVersion, KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
d1, d2, null, null, extraInt
)
return FileFacade(metadata)
}
@@ -186,15 +182,12 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
*
* @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default
* @param bytecodeVersion bytecode version to be written to the metadata (see [KotlinClassHeader.bytecodeVersion]),
* [KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION] by default
* @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default
*/
@JvmOverloads
fun write(
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0
): SyntheticClass {
val proto = t?.build()
@@ -202,7 +195,8 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
if (proto != null) writeProtoBufData(proto, c)
else Pair(emptyArray(), emptyArray())
val metadata = KotlinClassHeader(
KotlinClassHeader.SYNTHETIC_CLASS_KIND, metadataVersion, bytecodeVersion, d1, d2, null, null, extraInt
KotlinClassHeader.SYNTHETIC_CLASS_KIND, metadataVersion, KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
d1, d2, null, null, extraInt
)
return SyntheticClass(metadata)
}
@@ -230,8 +224,6 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
* @param partClassNames JVM internal names of the part classes which this multi-file class combines
* @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default
* @param bytecodeVersion bytecode version to be written to the metadata (see [KotlinClassHeader.bytecodeVersion]),
* [KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION] by default
* @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default
*/
@@ -239,12 +231,11 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
fun write(
partClassNames: List<String>,
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0
): MultiFileClassFacade {
val metadata = KotlinClassHeader(
KotlinClassHeader.MULTI_FILE_CLASS_FACADE_KIND, metadataVersion, bytecodeVersion, partClassNames.toTypedArray(),
null, null, null, extraInt
KotlinClassHeader.MULTI_FILE_CLASS_FACADE_KIND, metadataVersion, KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
partClassNames.toTypedArray(), null, null, null, extraInt
)
return MultiFileClassFacade(metadata)
}
@@ -296,8 +287,6 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
* @param facadeClassName JVM internal name of the corresponding multi-file class facade
* @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default
* @param bytecodeVersion bytecode version to be written to the metadata (see [KotlinClassHeader.bytecodeVersion]),
* [KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION] by default
* @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default
*/
@@ -305,12 +294,12 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
fun write(
facadeClassName: String,
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0
): MultiFileClassPart {
val (d1, d2) = writeProtoBufData(t.build(), c)
val metadata = KotlinClassHeader(
KotlinClassHeader.MULTI_FILE_CLASS_PART_KIND, metadataVersion, bytecodeVersion, d1, d2, facadeClassName, null, extraInt
KotlinClassHeader.MULTI_FILE_CLASS_PART_KIND, metadataVersion, KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
d1, d2, facadeClassName, null, extraInt
)
return MultiFileClassPart(metadata)
}