[FIR] Try to load properties in order according to kotlinx.serialization metadata extension

Move metadata extension with property order from kotlinx.serialization to core

After fix of KT-54792 properties will be deserialized in declaration order
  if corresponding class was compiled with modern compiler. But this order
  is needed for kotlinx.serialization for binaries compiled with any
  kotlin compiler >= 1.4. Since we don't plan to add any extension points
  into (de)serialization into FIR, we need to take into account existing
  metadata extension from kotlinx.serialization in compiler itself

^KT-57769 Fixed
This commit is contained in:
Dmitriy Novozhilov
2022-11-02 13:59:32 +02:00
committed by Space Team
parent 7685284cb7
commit 94f77add49
15 changed files with 142 additions and 13 deletions
+1 -1
View File
@@ -46,6 +46,7 @@ class ProtoPath(val file: String, val generateDebug: Boolean = true) {
val PROTO_PATHS: List<ProtoPath> = listOf(
ProtoPath("core/metadata/src/metadata.proto"),
ProtoPath("core/metadata/src/builtins.proto"),
ProtoPath("core/metadata/src/properties_order_extension.proto", generateDebug = false),
ProtoPath("js/js.serializer/src/js.proto"),
ProtoPath("js/js.serializer/src/js-ast.proto", false),
ProtoPath("core/metadata.jvm/src/jvm_metadata.proto"),
@@ -54,7 +55,6 @@ val PROTO_PATHS: List<ProtoPath> = listOf(
ProtoPath("compiler/util-klib-metadata/src/KlibMetadataProtoBuf.proto"),
ProtoPath("compiler/ir/serialization.common/src/KotlinIr.proto", false),
ProtoPath("compiler/ir/serialization.jvm/src/JvmIr.proto", false),
ProtoPath("plugins/kotlinx-serialization/kotlinx-serialization.k1/src/class_extensions.proto", generateDebug = false)
)
private val EXT_OPTIONS_PROTO_PATH = ProtoPath("core/metadata/src/ext_options.proto")