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 ## 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 - [`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 - 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 - [`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]), * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default * [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]), * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default * 0 by default
*/ */
@JvmOverloads @JvmOverloads
fun write( fun write(
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0 extraInt: Int = 0
): Class { ): Class {
val (d1, d2) = writeProtoBufData(t.build(), c) val (d1, d2) = writeProtoBufData(t.build(), c)
val metadata = KotlinClassHeader( 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) 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]), * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default * [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]), * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default * 0 by default
*/ */
@JvmOverloads @JvmOverloads
fun write( fun write(
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0 extraInt: Int = 0
): FileFacade { ): FileFacade {
val (d1, d2) = writeProtoBufData(t.build(), c) val (d1, d2) = writeProtoBufData(t.build(), c)
val metadata = KotlinClassHeader( 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) 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]), * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default * [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]), * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default * 0 by default
*/ */
@JvmOverloads @JvmOverloads
fun write( fun write(
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0 extraInt: Int = 0
): SyntheticClass { ): SyntheticClass {
val proto = t?.build() val proto = t?.build()
@@ -202,7 +195,8 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
if (proto != null) writeProtoBufData(proto, c) if (proto != null) writeProtoBufData(proto, c)
else Pair(emptyArray(), emptyArray()) else Pair(emptyArray(), emptyArray())
val metadata = KotlinClassHeader( 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) 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 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]), * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default * [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]), * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default * 0 by default
*/ */
@@ -239,12 +231,11 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
fun write( fun write(
partClassNames: List<String>, partClassNames: List<String>,
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0 extraInt: Int = 0
): MultiFileClassFacade { ): MultiFileClassFacade {
val metadata = KotlinClassHeader( val metadata = KotlinClassHeader(
KotlinClassHeader.MULTI_FILE_CLASS_FACADE_KIND, metadataVersion, bytecodeVersion, partClassNames.toTypedArray(), KotlinClassHeader.MULTI_FILE_CLASS_FACADE_KIND, metadataVersion, KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
null, null, null, extraInt partClassNames.toTypedArray(), null, null, null, extraInt
) )
return MultiFileClassFacade(metadata) 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 facadeClassName JVM internal name of the corresponding multi-file class facade
* @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]), * @param metadataVersion metadata version to be written to the metadata (see [KotlinClassHeader.metadataVersion]),
* [KotlinClassHeader.COMPATIBLE_METADATA_VERSION] by default * [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]), * @param extraInt the value of the class-level flags to be written to the metadata (see [KotlinClassHeader.extraInt]),
* 0 by default * 0 by default
*/ */
@@ -305,12 +294,12 @@ sealed class KotlinClassMetadata(val header: KotlinClassHeader) {
fun write( fun write(
facadeClassName: String, facadeClassName: String,
metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = KotlinClassHeader.COMPATIBLE_METADATA_VERSION,
bytecodeVersion: IntArray = KotlinClassHeader.COMPATIBLE_BYTECODE_VERSION,
extraInt: Int = 0 extraInt: Int = 0
): MultiFileClassPart { ): MultiFileClassPart {
val (d1, d2) = writeProtoBufData(t.build(), c) val (d1, d2) = writeProtoBufData(t.build(), c)
val metadata = KotlinClassHeader( 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) return MultiFileClassPart(metadata)
} }