package test;

@Anno(value = "anno-class")
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
/**
 * 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()
public abstract @interface Anno {

    public abstract java.lang.String value();
}

////////////////////

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 {

    @Anno(value = "top-level-fun")
    public static final void topLevelFun(@Anno(value = "top-level-fun-receiver")
    @org.jetbrains.annotations.NotNull()
    java.lang.String $this$topLevelFun) {
    }

    @org.jetbrains.annotations.NotNull()
    public static final java.lang.String getTopLevelVal(@Anno(value = "top-level-val-receiver")
    int $this$topLevelVal) {
        return null;
    }

    @Anno(value = "top-level-val")
    @java.lang.Deprecated()
    public static void getTopLevelVal$annotations(int p0) {
    }
}

////////////////////

package test;

@Anno(value = "enum")
/**
 * 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()
public enum Enum {
    @Anno(value = "white")
    /*public static final*/ WHITE /* = new Enum() */,
    @Anno(value = "black")
    /*public static final*/ BLACK /* = new Enum() */;
    private final int x = 0;

    @Anno(value = "enum-constructor")
    Enum(@Anno(value = "x")
    int x) {
    }

    public final int getX() {
        return 0;
    }

    @org.jetbrains.annotations.NotNull()
    public static kotlin.enums.EnumEntries<test.Enum> getEntries() {
        return null;
    }
}

////////////////////

package test;

@Anno(value = "clazz")
/**
 * 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 get
 *     public final set
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public abstract class Test {
    @org.jetbrains.annotations.NotNull()
    private java.lang.String v;

    @Anno(value = "test-constructor")
    protected Test(@Anno(value = "v-param")
    @org.jetbrains.annotations.NotNull()
    java.lang.String v) {
        super();
    }

    @Anno(value = "v-get")
    @org.jetbrains.annotations.NotNull()
    public final java.lang.String getV() {
        return null;
    }

    @Anno(value = "v-property")
    @java.lang.Deprecated()
    public static void getV$annotations() {
    }

    @Anno(value = "v-set")
    public final void setV(@Anno(value = "v-setparam")
    @org.jetbrains.annotations.NotNull()
    java.lang.String p0) {
    }

    @Anno(value = "abstract-method")
    @org.jetbrains.annotations.NotNull()
    public abstract java.lang.String abstractMethod();

    @org.jetbrains.annotations.NotNull()
    public abstract java.lang.String getAbstractVal();

    @Anno(value = "abstract-val")
    @java.lang.Deprecated()
    public static void getAbstractVal$annotations() {
    }
}
