[KAPT4] KT-51982 Implement generation of @Metadata annotations in Java stubs

Also adds rendering of @Metadata annotations in Kapt3 and Kapt4 tests
(currently disabled for a few tests).

Co-authored-by: Alexander Udalov <alexander.udalov@jetbrains.com>
This commit is contained in:
strangepleasures
2023-07-31 23:09:08 +02:00
committed by Space Team
parent f40fc1b0c6
commit 2423b7b62f
250 changed files with 15438 additions and 81 deletions
@@ -1,5 +1,18 @@
package test;
/**
* public final annotation class test/Anno : kotlin/Annotation {
*
* // signature: <init>(Ljava/lang/String;)V
* public constructor(value: kotlin/String)
*
* // getter: value()Ljava/lang/String;
* public final val value: kotlin/String
* public final get
*
* // module name: main
* }
*/
@kotlin.Metadata()
@Anno(value = "anno-class")
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
@@ -12,6 +25,20 @@ public abstract @interface Anno {
package test;
/**
* package {
*
* // signature: topLevelFun(Ljava/lang/String;)V
* public final fun kotlin/String.topLevelFun(): kotlin/Unit
*
* // getter: getTopLevelVal(I)Ljava/lang/String;
* // synthetic method for annotations: getTopLevelVal$annotations(I)V
* public final val kotlin/Int.topLevelVal: kotlin/String
* public final (* non-default *) get
*
* // module name: main
* }
*/
@kotlin.Metadata()
@kotlin.jvm.JvmName(name = "AnnotationsTest")
public final class AnnotationsTest {
@@ -42,6 +69,26 @@ public final class AnnotationsTest {
package test;
/**
* public final enum class test/Enum : kotlin/Enum<test/Enum> {
*
* // signature: <init>(Ljava/lang/String;II)V
* private constructor(x: kotlin/Int)
*
* // field: x:I
* // getter: getX()I
* public final val x: kotlin/Int
* public final get
*
* WHITE,
*
* BLACK,
*
* // module name: main
*
* // has Enum.entries
* }
*/
@kotlin.Metadata()
@Anno(value = "enum")
public enum Enum {
@@ -70,6 +117,31 @@ public enum Enum {
package test;
/**
* public abstract class test/Test : kotlin/Any {
*
* // signature: <init>(Ljava/lang/String;)V
* protected constructor(v: kotlin/String)
*
* // signature: abstractMethod()Ljava/lang/String;
* public abstract fun abstractMethod(): kotlin/String
*
* // getter: getAbstractVal()Ljava/lang/String;
* // synthetic method for annotations: getAbstractVal$annotations()V
* public abstract val abstractVal: kotlin/String
* public abstract get
*
* // field: v:Ljava/lang/String;
* // getter: getV()Ljava/lang/String;
* // setter: setV(Ljava/lang/String;)V
* // synthetic method for annotations: getV$annotations()V
* public final var v: kotlin/String
* public final (* non-default *) get
* public final (* non-default *) set(value: kotlin/String)
*
* // module name: main
* }
*/
@kotlin.Metadata()
@Anno(value = "clazz")
public abstract class Test {