diff --git a/compiler/testData/codegen/box/enum/enumInheritedFromTrait.kt b/compiler/testData/codegen/box/enum/enumInheritedFromTrait.kt new file mode 100644 index 00000000000..a371c7e27ae --- /dev/null +++ b/compiler/testData/codegen/box/enum/enumInheritedFromTrait.kt @@ -0,0 +1,16 @@ +package test + +fun box() = MyEnum.E1.f() + MyEnum.E2.f() + +enum class MyEnum : T { + E1 { + override fun f() = "O" + } + E2 { + override fun f() = "K" + } +} + +trait T { + fun f(): String +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java index e54f3bce619..446456ad272 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -2649,6 +2649,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest(fileName); } + @TestMetadata("enumInheritedFromTrait.kt") + public void testEnumInheritedFromTrait() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/enum/enumInheritedFromTrait.kt"); + doTest(fileName); + } + @TestMetadata("inPackage.kt") public void testInPackage() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/enum/inPackage.kt"); diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/EnumTest.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/EnumTest.java index 88ed3d92d22..a0de6fc92ba 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/semantics/EnumTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/EnumTest.java @@ -38,4 +38,8 @@ public class EnumTest extends SingleFileTranslationTest { public void testAccessing() throws Exception { checkFooBoxIsOk(); } + + public void testEnumInheritedFromTrait() throws Exception { + checkFooBoxIsOk(); + } } diff --git a/js/js.translator/testData/enum/cases/enumInheritedFromTrait.kt b/js/js.translator/testData/enum/cases/enumInheritedFromTrait.kt new file mode 100644 index 00000000000..8f2554f2f29 --- /dev/null +++ b/js/js.translator/testData/enum/cases/enumInheritedFromTrait.kt @@ -0,0 +1,16 @@ +package foo + +fun box() = MyEnum.E1.f() + MyEnum.E2.f() + +enum class MyEnum : T { + E1 { + override fun f() = "O" + } + E2 { + override fun f() = "K" + } +} + +trait T { + fun f(): String +} \ No newline at end of file