abstract enum class X : Enum { B = B() private enum entry class B : X { val value2: String field = "OK" get override val value: Function0 field = local fun (): String { return .() } override get private constructor() /* primary */ { super/*X*/() /* () */ } } private constructor() /* primary */ { super/*Enum*/() /* () */ } fun valueOf(value: String): X /* Synthetic body for ENUM_VALUEOF */ fun values(): Array /* Synthetic body for ENUM_VALUES */ val entries: EnumEntries get(): EnumEntries /* Synthetic body for ENUM_ENTRIES */ abstract val value: Function0 abstract get } fun box(): String { return X.B.().invoke() }