diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/Baz.java b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/Baz.java new file mode 100644 index 00000000000..d5fd7bcb24a --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/Baz.java @@ -0,0 +1,5 @@ +public class Baz { + public static String baz() { + return Util.foo() + Util.bar(); + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/bar.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/bar.kt new file mode 100644 index 00000000000..f5d29e0a6fc --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/bar.kt @@ -0,0 +1,3 @@ +@file:JvmName("Util") +@file:JvmMultifileClass +public fun bar(): String = "K" \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/foo.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/foo.kt new file mode 100644 index 00000000000..74bb68ff299 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/foo.kt @@ -0,0 +1,3 @@ +@file:JvmName("Util") +@file:JvmMultifileClass +public fun foo(): String = "O" \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/multifileClassWith2Files.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/multifileClassWith2Files.kt new file mode 100644 index 00000000000..936b887daa8 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/multifileClassWith2Files.kt @@ -0,0 +1 @@ +fun box(): String = Baz.baz() \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/Baz.java b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/Baz.java new file mode 100644 index 00000000000..d5fd7bcb24a --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/Baz.java @@ -0,0 +1,5 @@ +public class Baz { + public static String baz() { + return Util.foo() + Util.bar(); + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/bar.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/bar.kt new file mode 100644 index 00000000000..120066c7e6b --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/bar.kt @@ -0,0 +1,5 @@ +@file:JvmName("Util") +@file:JvmMultifileClass +public fun bar(): String = barx() + +internal fun foox(): String = "O" \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/foo.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/foo.kt new file mode 100644 index 00000000000..86c78c3ab08 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/foo.kt @@ -0,0 +1,5 @@ +@file:JvmName("Util") +@file:JvmMultifileClass +public fun foo(): String = foox() + +internal fun barx(): String = "K" \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/multifileClassWithInternal.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/multifileClassWithInternal.kt new file mode 100644 index 00000000000..936b887daa8 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/multifileClassWithInternal.kt @@ -0,0 +1 @@ +fun box(): String = Baz.baz() \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/Baz.java b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/Baz.java new file mode 100644 index 00000000000..d5fd7bcb24a --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/Baz.java @@ -0,0 +1,5 @@ +public class Baz { + public static String baz() { + return Util.foo() + Util.bar(); + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/bar.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/bar.kt new file mode 100644 index 00000000000..a220905840a --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/bar.kt @@ -0,0 +1,5 @@ +@file:JvmName("Util") +@file:JvmMultifileClass +public fun bar(): String = barx() + +private fun barx(): String = "K" \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/foo.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/foo.kt new file mode 100644 index 00000000000..92b45cb2dc2 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/foo.kt @@ -0,0 +1,5 @@ +@file:JvmName("Util") +@file:JvmMultifileClass +public fun foo(): String = foox() + +private fun foox(): String = "O" \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/multifileClassWithPrivate.kt b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/multifileClassWithPrivate.kt new file mode 100644 index 00000000000..936b887daa8 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/multifileClassWithPrivate.kt @@ -0,0 +1 @@ +fun box(): String = Baz.baz() \ No newline at end of file diff --git a/compiler/testData/codegen/boxWithStdlib/platformNames/multifileClass.kt b/compiler/testData/codegen/boxWithStdlib/platformNames/multifileClass.kt new file mode 100644 index 00000000000..5f5a1bf24ab --- /dev/null +++ b/compiler/testData/codegen/boxWithStdlib/platformNames/multifileClass.kt @@ -0,0 +1,10 @@ +// NB this multifile class should be called "TestPackage" due to the way codegen box tests work. +@file:JvmName("TestPackage") +@file:JvmMultifileClass +package test + +fun foo(): String = bar() +fun bar(): String = qux() +fun qux(): String = "OK" + +fun box(): String = foo() \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java index 939ebd540f1..a9dc672daf2 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java @@ -135,6 +135,24 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege doTestWithJava(fileName); } + @TestMetadata("multifileClassWith2Files") + public void testMultifileClassWith2Files() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWith2Files/"); + doTestWithJava(fileName); + } + + @TestMetadata("multifileClassWithInternal") + public void testMultifileClassWithInternal() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/"); + doTestWithJava(fileName); + } + + @TestMetadata("multifileClassWithPrivate") + public void testMultifileClassWithPrivate() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithPrivate/"); + doTestWithJava(fileName); + } + @TestMetadata("simple") public void testSimple() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/fileClasses/simple/"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java index 6f1d671c785..a6b911c4d0f 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java @@ -2239,6 +2239,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode doTestWithStdlib(fileName); } + @TestMetadata("multifileClass.kt") + public void testMultifileClass() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/platformNames/multifileClass.kt"); + doTestWithStdlib(fileName); + } + @TestMetadata("propertyName.kt") public void testPropertyName() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/platformNames/propertyName.kt");