diff --git a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModule.kt b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModule.kt index a0e2d564484..e9064521d77 100644 --- a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModule.kt +++ b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModule.kt @@ -16,7 +16,7 @@ class Mut(var _value: T) { } } -// MODULE: main(lib)(lib) +// MODULE: main()(lib) // FILE: main.kt import lib.* @@ -73,4 +73,4 @@ fun box(): String { if (localDelegatedVarByProvider != 3) throw AssertionError() return "OK" -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt index b6ee79d4b73..cad4caade78 100644 --- a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt +++ b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt @@ -16,7 +16,7 @@ class Mut(var _value: T) { } } -// MODULE: main(lib)(lib) +// MODULE: main()(lib) // FILE: main.kt import lib.* @@ -73,4 +73,4 @@ fun box(): String { if (localDelegatedVarByProvider != 3) throw AssertionError() return "OK" -} \ No newline at end of file +} diff --git a/compiler/testData/codegen/box/fakeOverride/internalFromFriendModule.kt b/compiler/testData/codegen/box/fakeOverride/internalFromFriendModule.kt index 3a32ce1afa7..4262aac1c68 100644 --- a/compiler/testData/codegen/box/fakeOverride/internalFromFriendModule.kt +++ b/compiler/testData/codegen/box/fakeOverride/internalFromFriendModule.kt @@ -10,10 +10,10 @@ open internal class In { fun k() = "K" } -// MODULE: main(lib)(lib) +// MODULE: main()(lib) // FILE: m.kt class Derived: Base() internal class IDerived: In() -fun box(): String = Derived().o() + IDerived().k() \ No newline at end of file +fun box(): String = Derived().o() + IDerived().k() diff --git a/compiler/testData/codegen/box/mangling/internal.kt b/compiler/testData/codegen/box/mangling/internal.kt index 9dc2e029f3c..07b1d4ff32b 100644 --- a/compiler/testData/codegen/box/mangling/internal.kt +++ b/compiler/testData/codegen/box/mangling/internal.kt @@ -20,7 +20,7 @@ internal class A { } } -// MODULE: main(lib)(lib) +// MODULE: main()(lib) // FILE: main.kt package main diff --git a/compiler/testData/codegen/bytecodeText/optimizedDelegatedProperties/inSeparateModule.kt b/compiler/testData/codegen/bytecodeText/optimizedDelegatedProperties/inSeparateModule.kt index f16656337ea..c492d8df65c 100644 --- a/compiler/testData/codegen/bytecodeText/optimizedDelegatedProperties/inSeparateModule.kt +++ b/compiler/testData/codegen/bytecodeText/optimizedDelegatedProperties/inSeparateModule.kt @@ -16,7 +16,7 @@ class Mut(var _value: T) { } } -// MODULE: main(lib)(lib) +// MODULE: main()(lib) // FILE: main.kt import lib.* diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/classic/ClassicFrontendFacade.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/classic/ClassicFrontendFacade.kt index 619213aa329..07720758dd6 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/classic/ClassicFrontendFacade.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/classic/ClassicFrontendFacade.kt @@ -299,7 +299,7 @@ class ClassicFrontendFacade( val runtimeKlibs = loadKlib(runtimeKlibsNames, configuration) val transitiveLibraries = JsEnvironmentConfigurator.getDependencies(module, testServices, DependencyRelation.RegularDependency) val friendLibraries = JsEnvironmentConfigurator.getDependencies(module, testServices, DependencyRelation.FriendDependency) - val allDependencies = runtimeKlibs + dependencyDescriptors + transitiveLibraries + val allDependencies = runtimeKlibs + dependencyDescriptors + friendsDescriptors + transitiveLibraries val analyzer = AnalyzerWithCompilerReport(configuration) val builtInModuleDescriptor = allDependencies.firstNotNullOfOrNull { it.builtIns }?.builtInsModule diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt index 624b3ed4cc6..379bd11db34 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt @@ -280,11 +280,25 @@ class ModuleStructureExtractorImpl( dependenciesNames = dependenciesNames.filter { it != "support" } } } + val friendsNames = friends.takeIf { it.isNotBlank() }?.split(" ") ?: emptyList() + val dependsOnNames = dependsOn.takeIf { it.isNotBlank() }?.split(" ") ?: emptyList() + + val intersection = buildSet { + addAll(dependenciesNames intersect friendsNames) + addAll(dependenciesNames intersect dependsOnNames) + addAll(friendsNames intersect dependsOnNames) + } + require(intersection.isEmpty()) { + val m = if (intersection.size == 1) "module" else "modules" + val names = if (intersection.size == 1) "`${intersection.first()}`" else intersection.joinToArrayString() + """Module `$name` depends on $m $names with different kinds simultaneously""" + } + return ModuleNameAndDependencies( name, dependenciesNames, - friends.takeIf { it.isNotBlank() }?.split(" ") ?: emptyList(), - dependsOn.takeIf { it.isNotBlank() }?.split(" ") ?: emptyList(), + friendsNames, + dependsOnNames, ) } diff --git a/js/js.translator/testData/box/inlineMultiModule/inlineMemberFunWithLambda.kt b/js/js.translator/testData/box/inlineMultiModule/inlineMemberFunWithLambda.kt index 2380b6b9d9c..886cf5f70bd 100644 --- a/js/js.translator/testData/box/inlineMultiModule/inlineMemberFunWithLambda.kt +++ b/js/js.translator/testData/box/inlineMultiModule/inlineMemberFunWithLambda.kt @@ -20,7 +20,7 @@ internal inline fun test1(): String { internal fun callTest1(): String = test1() -// MODULE: main(lib)(lib) +// MODULE: main()(lib) // FILE: lib.kt internal inline fun test2(): String { val x = C() @@ -38,4 +38,4 @@ fun box(): String { if (r2 != "2abcd") return "fail2: $r2" return "OK" -} \ No newline at end of file +} diff --git a/js/js.translator/testData/box/inlineMultiModule/internalFriend.kt b/js/js.translator/testData/box/inlineMultiModule/internalFriend.kt index f129cbebbee..44ebe4e7faf 100644 --- a/js/js.translator/testData/box/inlineMultiModule/internalFriend.kt +++ b/js/js.translator/testData/box/inlineMultiModule/internalFriend.kt @@ -7,6 +7,6 @@ internal fun bar() = "OK" internal inline fun foo() = bar() -// MODULE: main(lib)(lib) +// MODULE: main()(lib) // FILE: main.kt -fun box(): String = foo() \ No newline at end of file +fun box(): String = foo()