[SLC] add test on multiplatform facade

^KT-64714
This commit is contained in:
Dmitrii Gridin
2024-01-04 23:23:28 +01:00
committed by Space Team
parent 3d560cd92c
commit fc519b2339
15 changed files with 744 additions and 5 deletions
@@ -23,7 +23,7 @@ abstract class AbstractSymbolLightClassesByFqNameTest(
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
return LightClassTestCommon.getActualLightClassText(
testDataFile.toFile(),
{ fqName -> findLightClass(fqName, project) },
{ fqName -> findLightClass(fqName, ktFile) },
LightClassTestCommon::removeEmptyDefaultImpls,
if (isTestAgainstCompiledCode) MembersFilterForCompiledClasses else PsiClassRenderer.MembersFilter.DEFAULT,
)
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.assertions
import org.jetbrains.kotlin.test.services.service
import org.jetbrains.kotlin.test.utils.FirIdenticalCheckerHelper
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
import java.io.File
import java.nio.file.Path
@@ -61,7 +62,10 @@ abstract class AbstractSymbolLightClassesTestBase(
}
override fun doTestByModuleStructure(moduleStructure: TestModuleStructure, testServices: TestServices) {
val lastModule = moduleStructure.modules.last()
val lastModule = with(moduleStructure.modules) {
find { it.name.substringBefore('-') == "main" } ?: last()
}
val ktFiles = testServices.ktModuleProvider.getModuleFiles(lastModule).filterIsInstance<KtFile>()
doTestByFileStructure(ktFiles, lastModule, testServices)
}
@@ -140,13 +144,21 @@ abstract class AbstractSymbolLightClassesTestBase(
error("Test is passing. Please, remove `// ${directive.name}` directive")
}
protected fun findLightClass(fqname: String, ktFile: KtFile): PsiClass? {
val project = ktFile.project
return findLightClass(fqname, GlobalSearchScope.fileScope(ktFile), project) ?: findLightClass(fqname, project)
}
protected fun findLightClass(fqname: String, project: Project): PsiClass? {
val searchScope = GlobalSearchScope.allScope(project)
JavaElementFinder.getInstance(project).findClass(fqname, searchScope)?.let { return it }
return findLightClass(fqname, GlobalSearchScope.allScope(project), project)
}
private fun findLightClass(fqname: String, scope: GlobalSearchScope, project: Project): PsiClass? {
JavaElementFinder.getInstance(project).findClass(fqname, scope)?.let { return it }
val fqName = FqName(fqname)
val parentFqName = fqName.parent().takeUnless(FqName::isRoot) ?: return null
val enumClass = JavaElementFinder.getInstance(project).findClass(parentFqName.asString(), searchScope) ?: return null
val enumClass = JavaElementFinder.getInstance(project).findClass(parentFqName.asString(), scope) ?: return null
val kotlinEnumClass = enumClass.unwrapped?.safeAs<KtClass>()?.takeIf(KtClass::isEnum) ?: return null
val enumEntryName = fqName.shortName().asString()
@@ -429,6 +429,24 @@ public class SymbolLightClassesByFqNameForSourceTestGenerated extends AbstractSy
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/LocalInAnnotation.kt");
}
@Test
@TestMetadata("MultiplatformCommonFacade.kt")
public void testMultiplatformCommonFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformCommonFacade.kt");
}
@Test
@TestMetadata("MultiplatformIntermediateFacade.kt")
public void testMultiplatformIntermediateFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformIntermediateFacade.kt");
}
@Test
@TestMetadata("MultiplatformJvmFacade.kt")
public void testMultiplatformJvmFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.kt");
}
@Test
@TestMetadata("PrivateInTrait.kt")
public void testPrivateInTrait() throws Exception {
@@ -429,6 +429,24 @@ public class SymbolLightClassesEqualityByFqNameForSourceTestGenerated extends Ab
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/LocalInAnnotation.kt");
}
@Test
@TestMetadata("MultiplatformCommonFacade.kt")
public void testMultiplatformCommonFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformCommonFacade.kt");
}
@Test
@TestMetadata("MultiplatformIntermediateFacade.kt")
public void testMultiplatformIntermediateFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformIntermediateFacade.kt");
}
@Test
@TestMetadata("MultiplatformJvmFacade.kt")
public void testMultiplatformJvmFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.kt");
}
@Test
@TestMetadata("PrivateInTrait.kt")
public void testPrivateInTrait() throws Exception {
@@ -429,6 +429,24 @@ public class SymbolLightClassesParentingByFqNameForSourceTestGenerated extends A
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/LocalInAnnotation.kt");
}
@Test
@TestMetadata("MultiplatformCommonFacade.kt")
public void testMultiplatformCommonFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformCommonFacade.kt");
}
@Test
@TestMetadata("MultiplatformIntermediateFacade.kt")
public void testMultiplatformIntermediateFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformIntermediateFacade.kt");
}
@Test
@TestMetadata("MultiplatformJvmFacade.kt")
public void testMultiplatformJvmFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.kt");
}
@Test
@TestMetadata("PrivateInTrait.kt")
public void testPrivateInTrait() throws Exception {
@@ -0,0 +1,57 @@
public final class MyFacadeKt /* mypack.MyFacadeKt*/ {
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariable1();// getCommonVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariable2();// getCommonVariable2()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariableWithActualization();// getCommonVariableWithActualization()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariable1();// getIntermediateVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariable2();// getIntermediateVariable2()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getJvmVariable1();// getJvmVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getJvmVariable2();// getJvmVariable2()
public static final void commonFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction1(mypack.MyJvmClass, mypack.MyCommonClass)
public static final void commonFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction2(mypack.MyJvmClass, mypack.MyCommonClass)
public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// commonFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void jvmFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass)
public static final void jvmFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass)
public static final void setCommonVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariable1(mypack.MyJvmClass)
public static final void setCommonVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariable2(mypack.MyJvmClass)
public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariableWithActualization(mypack.MyJvmClass)
public static final void setIntermediateVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable1(mypack.MyJvmClass)
public static final void setIntermediateVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable2(mypack.MyJvmClass)
public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariableWithActualization(mypack.MyJvmClass)
public static final void setJvmVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable1(mypack.MyJvmClass)
public static final void setJvmVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable2(mypack.MyJvmClass)
}
@@ -0,0 +1,22 @@
public final class MyFacadeKt /* mypack.MyFacadeKt*/ {
@org.jetbrains.annotations.NotNull()
public static final mypack.MyCommonClassWithActualization getCommonVariable1();// getCommonVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyCommonClassWithActualization getCommonVariable2();// getCommonVariable2()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyCommonClassWithActualization getCommonVariableWithActualization();// getCommonVariableWithActualization()
public static final void commonFunction1(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction1(mypack.MyCommonClassWithActualization, mypack.MyCommonClass)
public static final void commonFunction2(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction2(mypack.MyCommonClassWithActualization, mypack.MyCommonClass)
public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunctionWithActualization(mypack.MyCommonClassWithActualization, mypack.MyCommonClass)
public static final void setCommonVariable1(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization);// setCommonVariable1(mypack.MyCommonClassWithActualization)
public static final void setCommonVariable2(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization);// setCommonVariable2(mypack.MyCommonClassWithActualization)
public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyCommonClassWithActualization);// setCommonVariableWithActualization(mypack.MyCommonClassWithActualization)
}
@@ -0,0 +1,138 @@
// mypack.MyFacadeKt
// SKIP_IDE_TEST
// MODULE: main-common
// FILE: commonFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
expect fun commonFunctionWithActualization(commonActualization: MyCommonClassWithActualization, common: MyCommonClass)
expect var commonVariableWithActualization: MyCommonClassWithActualization
fun commonFunction1(commonActualization: MyCommonClassWithActualization, common: MyCommonClass) {
}
expect class MyCommonClassWithActualization
class MyCommonClass
var commonVariable1: MyCommonClassWithActualization
// FILE: commonFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun commonFunction2(commonActualization: MyCommonClassWithActualization, common: MyCommonClass) {
}
var commonVariable2: MyCommonClassWithActualization
// MODULE: intermediate-common()()(main-common)
// FILE: intermediateFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
expect fun intermediateFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
)
expect var intermediateVariableWithActualization: IntermediateClassWithActualization
fun intermediateFunction1(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
expect class IntermediateClassWithActualization
class MyIntermediateClass
actual typealias MyCommonClassWithActualization = IntermediateClassWithActualization
var intermediateVariable1: IntermediateClassWithActualization
// FILE: intermediateFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun intermediateFunction2(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
var intermediateVariable2: IntermediateClassWithActualization
// MODULE: jvm()()(intermediate-common)
// FILE: jvmFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun jvmFunction1(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
jvm: MyJvmClass,
) {
}
var jvmVariable1: MyJvmClass
actual fun intermediateFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
actual var intermediateVariableWithActualization: IntermediateClassWithActualization
// FILE: jvmFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
actual fun commonFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
actual var commonVariableWithActualization: MyCommonClassWithActualization = "str"
fun jvmFunction2(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
jvm: MyJvmClass,
) {
}
actual typealias IntermediateClassWithActualization = MyJvmClass
var jvmVariable2: MyJvmClass
class MyJvmClass
@@ -0,0 +1,57 @@
public final class MyFacadeKt /* mypack.MyFacadeKt*/ {
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariable1();// getCommonVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariable2();// getCommonVariable2()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariableWithActualization();// getCommonVariableWithActualization()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariable1();// getIntermediateVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariable2();// getIntermediateVariable2()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getJvmVariable1();// getJvmVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getJvmVariable2();// getJvmVariable2()
public static final void commonFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction1(mypack.MyJvmClass, mypack.MyCommonClass)
public static final void commonFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction2(mypack.MyJvmClass, mypack.MyCommonClass)
public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// commonFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void jvmFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass)
public static final void jvmFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass)
public static final void setCommonVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariable1(mypack.MyJvmClass)
public static final void setCommonVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariable2(mypack.MyJvmClass)
public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariableWithActualization(mypack.MyJvmClass)
public static final void setIntermediateVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable1(mypack.MyJvmClass)
public static final void setIntermediateVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable2(mypack.MyJvmClass)
public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariableWithActualization(mypack.MyJvmClass)
public static final void setJvmVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable1(mypack.MyJvmClass)
public static final void setJvmVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable2(mypack.MyJvmClass)
}
@@ -0,0 +1,22 @@
public final class MyFacadeKt /* mypack.MyFacadeKt*/ {
@org.jetbrains.annotations.NotNull()
public static final mypack.IntermediateClassWithActualization getIntermediateVariable1();// getIntermediateVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.IntermediateClassWithActualization getIntermediateVariable2();// getIntermediateVariable2()
@org.jetbrains.annotations.NotNull()
public static final mypack.IntermediateClassWithActualization getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization()
public static final void intermediateFunction1(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction1(mypack.IntermediateClassWithActualization, mypack.IntermediateClassWithActualization, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunction2(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction2(mypack.IntermediateClassWithActualization, mypack.IntermediateClassWithActualization, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.IntermediateClassWithActualization, mypack.IntermediateClassWithActualization, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void setIntermediateVariable1(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setIntermediateVariable1(mypack.IntermediateClassWithActualization)
public static final void setIntermediateVariable2(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setIntermediateVariable2(mypack.IntermediateClassWithActualization)
public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.IntermediateClassWithActualization);// setIntermediateVariableWithActualization(mypack.IntermediateClassWithActualization)
}
@@ -0,0 +1,138 @@
// mypack.MyFacadeKt
// SKIP_IDE_TEST
// MODULE: common
// FILE: commonFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
expect fun commonFunctionWithActualization(commonActualization: MyCommonClassWithActualization, common: MyCommonClass)
expect var commonVariableWithActualization: MyCommonClassWithActualization
fun commonFunction1(commonActualization: MyCommonClassWithActualization, common: MyCommonClass) {
}
expect class MyCommonClassWithActualization
class MyCommonClass
var commonVariable1: MyCommonClassWithActualization
// FILE: commonFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun commonFunction2(commonActualization: MyCommonClassWithActualization, common: MyCommonClass) {
}
var commonVariable2: MyCommonClassWithActualization
// MODULE: main-intermediate-common()()(common)
// FILE: intermediateFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
expect fun intermediateFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
)
expect var intermediateVariableWithActualization: IntermediateClassWithActualization
fun intermediateFunction1(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
expect class IntermediateClassWithActualization
class MyIntermediateClass
actual typealias MyCommonClassWithActualization = IntermediateClassWithActualization
var intermediateVariable1: IntermediateClassWithActualization
// FILE: intermediateFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun intermediateFunction2(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
var intermediateVariable2: IntermediateClassWithActualization
// MODULE: jvm()()(main-intermediate-common)
// FILE: jvmFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun jvmFunction1(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
jvm: MyJvmClass,
) {
}
var jvmVariable1: MyJvmClass
actual fun intermediateFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
actual var intermediateVariableWithActualization: IntermediateClassWithActualization
// FILE: jvmFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
actual fun commonFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
actual var commonVariableWithActualization: MyCommonClassWithActualization = "str"
fun jvmFunction2(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
jvm: MyJvmClass,
) {
}
actual typealias IntermediateClassWithActualization = MyJvmClass
var jvmVariable2: MyJvmClass
class MyJvmClass
@@ -0,0 +1,57 @@
public final class MyFacadeKt /* mypack.MyFacadeKt*/ {
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariable1();// getCommonVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariable2();// getCommonVariable2()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariableWithActualization();// getCommonVariableWithActualization()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariable1();// getIntermediateVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariable2();// getIntermediateVariable2()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getJvmVariable1();// getJvmVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getJvmVariable2();// getJvmVariable2()
public static final void commonFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction1(mypack.MyJvmClass, mypack.MyCommonClass)
public static final void commonFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass);// commonFunction2(mypack.MyJvmClass, mypack.MyCommonClass)
public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// commonFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void jvmFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass)
public static final void jvmFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass)
public static final void setCommonVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariable1(mypack.MyJvmClass)
public static final void setCommonVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariable2(mypack.MyJvmClass)
public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariableWithActualization(mypack.MyJvmClass)
public static final void setIntermediateVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable1(mypack.MyJvmClass)
public static final void setIntermediateVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariable2(mypack.MyJvmClass)
public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariableWithActualization(mypack.MyJvmClass)
public static final void setJvmVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable1(mypack.MyJvmClass)
public static final void setJvmVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable2(mypack.MyJvmClass)
}
@@ -0,0 +1,29 @@
public final class MyFacadeKt /* mypack.MyFacadeKt*/ {
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getCommonVariableWithActualization();// getCommonVariableWithActualization()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getIntermediateVariableWithActualization();// getIntermediateVariableWithActualization()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getJvmVariable1();// getJvmVariable1()
@org.jetbrains.annotations.NotNull()
public static final mypack.MyJvmClass getJvmVariable2();// getJvmVariable2()
public static final void commonFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// commonFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void intermediateFunctionWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass);// intermediateFunctionWithActualization(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass)
public static final void jvmFunction1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction1(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass)
public static final void jvmFunction2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass, @org.jetbrains.annotations.NotNull() mypack.MyCommonClass, @org.jetbrains.annotations.NotNull() mypack.MyIntermediateClass, @org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// jvmFunction2(mypack.MyJvmClass, mypack.MyJvmClass, mypack.MyCommonClass, mypack.MyIntermediateClass, mypack.MyJvmClass)
public static final void setCommonVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setCommonVariableWithActualization(mypack.MyJvmClass)
public static final void setIntermediateVariableWithActualization(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setIntermediateVariableWithActualization(mypack.MyJvmClass)
public static final void setJvmVariable1(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable1(mypack.MyJvmClass)
public static final void setJvmVariable2(@org.jetbrains.annotations.NotNull() mypack.MyJvmClass);// setJvmVariable2(mypack.MyJvmClass)
}
@@ -0,0 +1,138 @@
// mypack.MyFacadeKt
// SKIP_IDE_TEST
// MODULE: common
// FILE: commonFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
expect fun commonFunctionWithActualization(commonActualization: MyCommonClassWithActualization, common: MyCommonClass)
expect var commonVariableWithActualization: MyCommonClassWithActualization
fun commonFunction1(commonActualization: MyCommonClassWithActualization, common: MyCommonClass) {
}
expect class MyCommonClassWithActualization
class MyCommonClass
var commonVariable1: MyCommonClassWithActualization
// FILE: commonFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun commonFunction2(commonActualization: MyCommonClassWithActualization, common: MyCommonClass) {
}
var commonVariable2: MyCommonClassWithActualization
// MODULE: intermediate-common()()(common)
// FILE: intermediateFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
expect fun intermediateFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
)
expect var intermediateVariableWithActualization: IntermediateClassWithActualization
fun intermediateFunction1(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
expect class IntermediateClassWithActualization
class MyIntermediateClass
actual typealias MyCommonClassWithActualization = IntermediateClassWithActualization
var intermediateVariable1: IntermediateClassWithActualization
// FILE: intermediateFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun intermediateFunction2(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
var intermediateVariable2: IntermediateClassWithActualization
// MODULE: main-jvm()()(intermediate-common)
// FILE: jvmFile1.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
fun jvmFunction1(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
jvm: MyJvmClass,
) {
}
var jvmVariable1: MyJvmClass
actual fun intermediateFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
actual var intermediateVariableWithActualization: IntermediateClassWithActualization
// FILE: jvmFile2.kt
@file:JvmName("MyFacadeKt")
@file:JvmMultifileClass
package mypack
actual fun commonFunctionWithActualization(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
) {
}
actual var commonVariableWithActualization: MyCommonClassWithActualization = "str"
fun jvmFunction2(
commonActualization: MyCommonClassWithActualization,
intermediateActualization: IntermediateClassWithActualization,
common: MyCommonClass,
intermediate: MyIntermediateClass,
jvm: MyJvmClass,
) {
}
actual typealias IntermediateClassWithActualization = MyJvmClass
var jvmVariable2: MyJvmClass
class MyJvmClass
@@ -371,6 +371,21 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/LocalInAnnotation.kt");
}
@TestMetadata("MultiplatformCommonFacade.kt")
public void testMultiplatformCommonFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformCommonFacade.kt");
}
@TestMetadata("MultiplatformIntermediateFacade.kt")
public void testMultiplatformIntermediateFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformIntermediateFacade.kt");
}
@TestMetadata("MultiplatformJvmFacade.kt")
public void testMultiplatformJvmFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/MultiplatformJvmFacade.kt");
}
@TestMetadata("PrivateInTrait.kt")
public void testPrivateInTrait() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/PrivateInTrait.kt");