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

  }

  A = Enum()

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

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

}

object A {
  private constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

val a: Int
  field = 0
  get

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

  }

  companion object Companion {
    private constructor() /* primary */ {
      super/*Any*/()
      /* <init>() */

    }

  }

}

fun test1(): Enum {
  return Enum.A
}

fun test2(): A {
  return A
}

fun test3(): Int {
  return <get-a>()
}

fun test4(): Companion {
  return Companion
}
