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

  }

  Z = Z()
  private enum entry class Z : MyEnum {
    private constructor() /* primary */ {
      super/*MyEnum*/() /*~> Unit */
      /* <init>() */

    }

    var counter: Int
      field = 0
      get
      set

    fun foo() {
    }

    fun bar() {
      <this>.<set-counter>(<set-?> = 1)
      <this>.foo()
    }

    val aLambda: Function0<Unit>
      field = local fun <anonymous>() {
        MyEnum.Z.<set-counter>(<set-?> = 1)
        MyEnum.Z.foo()
      }

      get

    val anObject: Any
      field = { // BLOCK
        local class <no name provided> {
          constructor() /* primary */ {
            super/*Any*/()
            /* <init>() */

          }

          init {
            MyEnum.Z.<set-counter>(<set-?> = 1)
            MyEnum.Z.foo()
          }

          fun test() {
            MyEnum.Z.<set-counter>(<set-?> = 1)
            MyEnum.Z.foo()
          }

        }

        <no name provided>()
      }
      get

  }

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

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

}
