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

  }

  val x: String
    field = x
    get

}

@TestAnn(x = "class")
class TestClass {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

@TestAnn(x = "interface")
interface TestInterface {

}

@TestAnn(x = "object")
object TestObject {
  private constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

class Host {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  @TestAnn(x = "companion")
  companion object TestCompanion {
    private constructor() /* primary */ {
      super/*Any*/()
      /* <init>() */

    }

  }

}

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

  }

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

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

}

@TestAnn(x = "annotation")
open annotation class TestAnnotation : Annotation {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}
