From 96e54b4872a1c46e67845711473161e0215fffd6 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Thu, 12 Feb 2015 14:47:29 +0300 Subject: [PATCH] Test accessing class object from java --- .../boxWithJava/classObjectAccessor/J.java | 5 +++++ .../classObjectAccessor/classObject.kt | 17 +++++++++++++++++ .../BlackBoxWithJavaCodegenTestGenerated.java | 6 ++++++ 3 files changed, 28 insertions(+) create mode 100644 compiler/testData/codegen/boxWithJava/classObjectAccessor/J.java create mode 100644 compiler/testData/codegen/boxWithJava/classObjectAccessor/classObject.kt diff --git a/compiler/testData/codegen/boxWithJava/classObjectAccessor/J.java b/compiler/testData/codegen/boxWithJava/classObjectAccessor/J.java new file mode 100644 index 00000000000..aeb26ab7d13 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/classObjectAccessor/J.java @@ -0,0 +1,5 @@ +public class J { + public static int f() { + return A.Default.getI1() + A.OBJECT$.getI2() + B.Named.getI1() + B.OBJECT$.getI2(); + } +} diff --git a/compiler/testData/codegen/boxWithJava/classObjectAccessor/classObject.kt b/compiler/testData/codegen/boxWithJava/classObjectAccessor/classObject.kt new file mode 100644 index 00000000000..b9652fab9da --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/classObjectAccessor/classObject.kt @@ -0,0 +1,17 @@ +class A { + class object { + val i1 = 1 + val i2 = 2 + } +} + +class B { + class object Named { + val i1 = 3 + val i2 = 4 + } +} + +fun box(): String { + return if (J.f() == A.i1 + A.i2 + B.i1 + B.i2) "OK" else "Fail: ${J.f()}" +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java index 9832e5a50f9..61a55688160 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java @@ -37,6 +37,12 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/boxWithJava"), Pattern.compile("^([^\\.]+)$"), true); } + @TestMetadata("classObjectAccessor") + public void testClassObjectAccessor() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/classObjectAccessor/"); + doTestWithJava(fileName); + } + @TestMetadata("inline") public void testInline() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/inline/");