enum class TestFinalEnum1 : Enum { private constructor() /* primary */ { super/*Enum*/() /* () */ } X1 = TestFinalEnum1() fun values(): Array /* Synthetic body for ENUM_VALUES */ fun valueOf(value: String): TestFinalEnum1 /* Synthetic body for ENUM_VALUEOF */ } enum class TestFinalEnum2 : Enum { private constructor(x: Int) /* primary */ { super/*Enum*/() /* () */ } val x: Int field = x get X1 = TestFinalEnum2(x = 1) fun values(): Array /* Synthetic body for ENUM_VALUES */ fun valueOf(value: String): TestFinalEnum2 /* Synthetic body for ENUM_VALUEOF */ } enum class TestFinalEnum3 : Enum { private constructor() /* primary */ { super/*Enum*/() /* () */ } X1 = TestFinalEnum3() fun doStuff() { } fun values(): Array /* Synthetic body for ENUM_VALUES */ fun valueOf(value: String): TestFinalEnum3 /* Synthetic body for ENUM_VALUEOF */ } open enum class TestOpenEnum1 : Enum { private constructor() /* primary */ { super/*Enum*/() /* () */ } X1 = X1() private enum entry class X1 : TestOpenEnum1 { private constructor() /* primary */ { super/*TestOpenEnum1*/() /*~> Unit */ /* () */ } override fun toString(): String { return "X1" } } fun values(): Array /* Synthetic body for ENUM_VALUES */ fun valueOf(value: String): TestOpenEnum1 /* Synthetic body for ENUM_VALUEOF */ } open enum class TestOpenEnum2 : Enum { private constructor() /* primary */ { super/*Enum*/() /* () */ } X1 = X1() private enum entry class X1 : TestOpenEnum2 { private constructor() /* primary */ { super/*TestOpenEnum2*/() /*~> Unit */ /* () */ } override fun foo() { } } open fun foo() { } fun values(): Array /* Synthetic body for ENUM_VALUES */ fun valueOf(value: String): TestOpenEnum2 /* Synthetic body for ENUM_VALUEOF */ } abstract enum class TestAbstractEnum1 : Enum { private constructor() /* primary */ { super/*Enum*/() /* () */ } X1 = X1() private enum entry class X1 : TestAbstractEnum1 { private constructor() /* primary */ { super/*TestAbstractEnum1*/() /*~> Unit */ /* () */ } override fun foo() { } } abstract fun foo() fun values(): Array /* Synthetic body for ENUM_VALUES */ fun valueOf(value: String): TestAbstractEnum1 /* Synthetic body for ENUM_VALUEOF */ } interface IFoo { abstract fun foo() } abstract enum class TestAbstractEnum2 : Enum, IFoo { private constructor() /* primary */ { super/*Enum*/() /* () */ } X1 = X1() private enum entry class X1 : TestAbstractEnum2 { private constructor() /* primary */ { super/*TestAbstractEnum2*/() /*~> Unit */ /* () */ } override fun foo() { } } fun values(): Array /* Synthetic body for ENUM_VALUES */ fun valueOf(value: String): TestAbstractEnum2 /* Synthetic body for ENUM_VALUEOF */ }