open annotation class TestAnn : Annotation {
  constructor(x: String) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val x: String
    field = x
    get

}

open enum class TestEnum : Enum<TestEnum> {
  private constructor() /* primary */ {
    super/*Enum*/<TestEnum>()
    /* <init>() */

  }

  @TestAnn(x = "ENTRY1")
  ENTRY1 = TestEnum()

  @TestAnn(x = "ENTRY2")
  ENTRY2 = ENTRY2()
  private enum entry class ENTRY2 : TestEnum {
    private constructor() /* primary */ {
      super/*TestEnum*/()
      /* <init>() */

    }

    val x: Int
      field = 42
      get

  }

  fun values(): Array<TestEnum> /* Synthetic body for ENUM_VALUES */

  fun valueOf(value: String): TestEnum /* Synthetic body for ENUM_VALUEOF */

}
