¿Está documentado el formatting de los datos en kotlin.MetaData en cualquier lugar?

Me interesa saber qué datos se guardan en la anotación de MetaData agregada a cada class de Kotlin.

Pero la mayoría de los campos no dan más detalles que

"Metadatos en un formatting personalizado. El formatting puede ser diferente (o incluso ausente) para diferentes types".

https://github.com/JetBrains/kotlin/blob/master/core/runtime.jvm/src/kotlin/Metadata.kt

¿Hay alguna reference en alguna parte que explique cómo interpretar esta información?

kotlin.Metadata contiene información sobre los símbolos de Kotlin, como sus nombres, firmas, relaciones entre types, etc. Parte de esta información ya está presente en las firmas de JVM en los files de class, pero muchas no lo son, ya que hay bastantes Kotlin. – cosas específicas que los files de la class JVM no pueden representar correctamente: tipo nulability, interfaces de colección mutables / de solo lectura, varianza del sitio de statement, y otros.

No se tomaron medidas específicas para hacer público el esquema de los datos codificados en esta anotación, porque para la mayoría de los usuarios, dichos datos son necesarios para introspectir un progtwig en time de ejecución, y la biblioteca de reflexión Kotlin proporciona una buena API para eso.

Si necesita inspeccionar cosas específicas de Kotlin que no están expuestas a través de la API de reflexión, o simplemente tiene curiosidad por saber qué más está almacenado en esa anotación, puede echarle un vistazo a la implementación de kotlinx.reflect.lite . Es una biblioteca liviana, cuyo núcleo es el analizador de esquema generado por protobuf. No hay mucho soporte allí en este momento, pero hay esquemas disponibles que puede usar para leer cualquier otra información que necesite.

  • Proporcionar una instancia genérica en Kotlin & Guice
  • Error de generación transformClassesWithDesugar después de actualizar a AS 3.0 Canary 6
  • FirebaseListAdapter ignora orderByChild () e equalTo ()
  • ¿Cómo definir un miembro delegado que se puede anotar en Kotlin?
  • Asignación de valores a ArrayList usando mapTo
  • Publicar en el hilo de la interfaz de usuario
  • Calificado en kotlin
  • Custom Jersey ExceptionMapper en Spring Boot con kotlin
  • Las testings de Spring Boot no reutilizan el context
  • Permisosdispatcher y múltiples @ NeedsPermission con kotlin
  • ¿Qué representa el modificador sellado en Kotlin?