da69e3db7c
The main reason for this change is that the current API for class version requirements (`KmClass.versionRequirements`) makes it impossible to support pre-1.4 metadata where this was stored incorrectly for nested classes: with the "version requirement table" in the outer class, and indexes into that table in nested classes. See KT-41011. Other than this aspect, metadata of classes is basically the same in pre-1.4 and 1.4, which means that if some kotlinx-metadata-jvm users really need to serialize metadata of an earlier version and they don't care about the version requirements issue, they can just use these new bytes but write the earlier version (e.g. 1.1) to the class file. Everything will work the same, except for the possible version requirements issue mentioned above. Note that metadata version 1.4 is still supported for `KotlinModuleMetadata.Writer` though. #KT-41011 Fixed
3.2 KiB
3.2 KiB
kotlinx-metadata-jvm
0.2.0
- 'KT-41011` Using KotlinClassMetadata.Class.Writer with metadata version < 1.4 will write incorrect version requirement table
- Breaking change:
KotlinClassMetadata.*.Writer.writethrows exception onmetadataVersionearlier than 1.4.0. Note: metadata of version 1.4 is readable by Kotlin compiler/reflection of versions 1.3 and later.
- Breaking change:
- Breaking change:
KotlinClassMetadata.*.Writer.writeno longer acceptbytecodeVersion. KT-42429Wrong interpretation of Flag.Constructor.IS_PRIMARY- Breaking change:
Flag.Constructor.IS_PRIMARYis deprecated, useFlag.Constructor.IS_SECONDARYinstead
- Breaking change:
KT-37421Add Flag.Class.IS_FUN for functional interfaces- Add
KmModule.optionalAnnotationClassesfor the new scheme of compilation of OptionalExpectation annotations in multiplatform projects (KT-38652)
0.1.0
KT-26602Provide a value-based API
0.0.6
KT-31308Add module name extensions to kotlinx-metadata-jvmKT-31338Retain "is moved from interface companion" property flag in kotlinx-metadata-jvm- Breaking change: JvmPropertyExtensionVisitor.visit has a new parameter
jvmFlags: Flags
- Breaking change: JvmPropertyExtensionVisitor.visit has a new parameter
- Correctly write "null" constant value in effect expression of a contract
- Rename
descparameters tosignaturein JvmFunctionExtensionVisitor, JvmPropertyExtensionVisitor, JvmConstructorExtensionVisitor - Do not expose KmExtensionType internals
- Add KmExtensionVisitor.type to get dynamic type of an extension visitor
0.0.5
KT-25371Support unsigned integers in kotlinx-metadata-jvmKT-28682Wrong character replacement in ClassName.jvmInternalName of kotlinx-metadata-jvm
0.0.4
KT-25920Compile kotlinx-metadata-jvm with JVM target bytecode version 1.6 instead of 1.8KT-25223Add JvmFunctionExtensionVisitor.visitEndKT-26188Do not pass field signature for accessor-only properties
0.0.3
- Support metadata of local delegated properties (see
JvmDeclarationContainerExtensionVisitor.visitLocalDelegatedProperty) KT-24881Use correct class loader in kotlinx-metadata to load MetadataExtensions implementationsKT-24945Relocate package org.jetbrains.kotlin to fix IllegalAccessError in annotation processing
0.0.2
- Change group ID from
org.jetbrains.kotlintoorg.jetbrains.kotlinx - Depend on a specific version of kotlin-stdlib from Maven Central instead of snapshot from Sonatype Nexus
- Use
JvmMethodSignatureandJvmFieldSignatureto represent JVM signatures instead of plain strings
0.0.1
- Initial release