diff --git a/compiler/testData/codegen/box/enum/superCallInEnumLiteral.kt b/compiler/testData/codegen/box/enum/superCallInEnumLiteral.kt new file mode 100644 index 00000000000..ecea921b58f --- /dev/null +++ b/compiler/testData/codegen/box/enum/superCallInEnumLiteral.kt @@ -0,0 +1,18 @@ +package test + +fun box() = E.E1.f() + E.E2.f() + +enum class E { + E1 { + override fun f(): String { + return super.f() + "O" + } + } + E2 { + override fun f(): String { + return super.f() + "K" + } + } + + open fun f() = "" +} \ 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 00acd2df0f6..b896bf506f9 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -2715,6 +2715,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest(fileName); } + @TestMetadata("superCallInEnumLiteral.kt") + public void testSuperCallInEnumLiteral() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/enum/superCallInEnumLiteral.kt"); + doTest(fileName); + } + @TestMetadata("toString.kt") public void testToString() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/enum/toString.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 a0de6fc92ba..8be7e2e43ed 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 @@ -42,4 +42,8 @@ public class EnumTest extends SingleFileTranslationTest { public void testEnumInheritedFromTrait() throws Exception { checkFooBoxIsOk(); } + + public void testSuperCallInEnumLiteral() throws Exception { + checkFooBoxIsOk(); + } } diff --git a/js/js.translator/testData/enum/cases/superCallInEnumLiteral.kt b/js/js.translator/testData/enum/cases/superCallInEnumLiteral.kt new file mode 100644 index 00000000000..76b27563319 --- /dev/null +++ b/js/js.translator/testData/enum/cases/superCallInEnumLiteral.kt @@ -0,0 +1,34 @@ +/* + * Copyright 2010-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package foo + +fun box() = E.E1.f() + E.E2.f() + +enum class E { + E1 { + override fun f(): String { + return super.f() + "O" + } + } + E2 { + override fun f(): String { + return super.f() + "K" + } + } + + open fun f() = "" +} \ No newline at end of file