enum class E {
    X {
        override fun a() {}
    },
    Y {
        override fun a() {}
    };

    abstract fun a()

    fun b() {}

    object Obj
    class NestedClass
}

enum class E2 {
    X("") {
        override fun a() {}
    },
    Y(5) {
        override fun a() {}
    };

    constructor(n: Int) {}
    constructor(s: String) {}

    abstract fun a()
}

enum class E3(val a: String) {
    X(""), Y("")
}

enum class E4(val a: String, val b: Int, val c: Long, val d: Boolean) {
    X("", 4, 2L, true)
}
