diff --git a/plugins/kotlin/gradle/gradle-idea/test/org/jetbrains/kotlin/gradle/HmppImportAndHighlightingTests.kt b/plugins/kotlin/gradle/gradle-idea/test/org/jetbrains/kotlin/gradle/HmppImportAndHighlightingTests.kt index 0e87af0106e8..22ab068b9fb8 100644 --- a/plugins/kotlin/gradle/gradle-idea/test/org/jetbrains/kotlin/gradle/HmppImportAndHighlightingTests.kt +++ b/plugins/kotlin/gradle/gradle-idea/test/org/jetbrains/kotlin/gradle/HmppImportAndHighlightingTests.kt @@ -20,6 +20,7 @@ import org.jetbrains.plugins.gradle.tooling.annotation.PluginTargetVersions import org.jetbrains.plugins.gradle.util.GradleConstants import org.junit.Assume.assumeTrue import org.junit.Test +import java.io.PrintStream class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestCase() { @@ -494,15 +495,20 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC allModules { assertNoDependencyInBuildClasses() } + module("lib-and-app") + module("lib-and-app.app") + module("lib-and-app.app.commonMain") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) } + module("lib-and-app.app.commonTest") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) } + module("lib-and-app.app.iosArm64Main") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.app.iosMain", DependencyScope.COMPILE) @@ -511,6 +517,7 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC if (HostManager.hostIsMac) moduleDependency("lib-and-app.lib.iosArm64Main", DependencyScope.COMPILE) } + module("lib-and-app.app.iosArm64Test") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.app.commonTest", DependencyScope.TEST) @@ -519,13 +526,14 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("lib-and-app.app.iosTest", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.iosMain", DependencyScope.TEST) - } + module("lib-and-app.app.iosMain") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.iosMain", DependencyScope.COMPILE) } + module("lib-and-app.app.iosTest") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.app.commonTest", DependencyScope.TEST) @@ -533,6 +541,7 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.iosMain", DependencyScope.TEST) } + module("lib-and-app.app.iosX64Main") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.app.iosMain", DependencyScope.COMPILE) @@ -541,6 +550,16 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC if (HostManager.hostIsMac) moduleDependency("lib-and-app.lib.iosX64Main", DependencyScope.COMPILE) } + + module("lib-and-app.app.iosSimulatorArm64Main", isOptional = true) { + moduleDependency("lib-and-app.app.commonMain", DependencyScope.COMPILE) + moduleDependency("lib-and-app.app.iosMain", DependencyScope.COMPILE) + moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) + moduleDependency("lib-and-app.lib.iosMain", DependencyScope.COMPILE) + if (HostManager.hostIsMac) + moduleDependency("lib-and-app.lib.iosSimulatorArm64Main", DependencyScope.COMPILE) + } + module("lib-and-app.app.iosX64Test") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.app.commonTest", DependencyScope.TEST) @@ -551,57 +570,77 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("lib-and-app.lib.iosMain", DependencyScope.TEST) if (HostManager.hostIsMac) moduleDependency("lib-and-app.lib.iosX64Main", DependencyScope.TEST) - } + + module("lib-and-app.app.iosSimulatorArm64Test", isOptional = true) { + moduleDependency("lib-and-app.app.commonMain", DependencyScope.TEST) + moduleDependency("lib-and-app.app.commonTest", DependencyScope.TEST) + moduleDependency("lib-and-app.app.iosSimulatorArm64Main", DependencyScope.TEST) + moduleDependency("lib-and-app.app.iosMain", DependencyScope.TEST) + moduleDependency("lib-and-app.app.iosTest", DependencyScope.TEST) + moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) + moduleDependency("lib-and-app.lib.iosMain", DependencyScope.TEST) + if (HostManager.hostIsMac) + moduleDependency("lib-and-app.lib.iosSimulatorArm64Main", DependencyScope.TEST) + } + module("lib-and-app.app.jsMain") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.COMPILE) - moduleDependency("lib-and-app.app.jvmAndJsMain", DependencyScope.COMPILE) + moduleDependency("lib-and-app.app.jvmAndJsMain", DependencyScope.COMPILE, allowMultiple = true) moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE, allowMultiple = true) moduleDependency("lib-and-app.lib.jsMain", DependencyScope.COMPILE) - moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.COMPILE) + moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.COMPILE, allowMultiple = true) } + module("lib-and-app.app.jsTest") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.app.commonTest", DependencyScope.TEST) moduleDependency("lib-and-app.app.jsMain", DependencyScope.TEST) moduleDependency("lib-and-app.app.jsMain", DependencyScope.RUNTIME, isOptional = true) - moduleDependency("lib-and-app.app.jvmAndJsMain", DependencyScope.TEST) + moduleDependency("lib-and-app.app.jvmAndJsMain", DependencyScope.TEST, allowMultiple = true) moduleDependency("lib-and-app.lib.jsMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST, allowMultiple = true) - moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.TEST) + moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.TEST, allowMultiple = true) } + module("lib-and-app.app.jvmAndJsMain") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.COMPILE) } + module("lib-and-app.app.jvmMain") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.COMPILE) - moduleDependency("lib-and-app.app.jvmAndJsMain", DependencyScope.COMPILE) + moduleDependency("lib-and-app.app.jvmAndJsMain", DependencyScope.COMPILE, allowMultiple = true) moduleDependency("lib-and-app.lib.jvmMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE, allowMultiple = true) - moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.COMPILE) + moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.COMPILE, allowMultiple = true) } + module("lib-and-app.app.jvmTest") { moduleDependency("lib-and-app.app.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.app.commonTest", DependencyScope.TEST) - moduleDependency("lib-and-app.app.jvmAndJsMain", DependencyScope.TEST) + moduleDependency("lib-and-app.app.jvmAndJsMain", DependencyScope.TEST, allowMultiple = true) moduleDependency("lib-and-app.app.jvmMain", DependencyScope.TEST) moduleDependency("lib-and-app.app.jvmMain", DependencyScope.RUNTIME, isOptional = true) moduleDependency("lib-and-app.lib.jvmMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST, allowMultiple = true) - moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.TEST) + moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.TEST, allowMultiple = true) } module("lib-and-app.lib") + module("lib-and-app.lib.commonMain") + module("lib-and-app.lib.commonTest") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) } + module("lib-and-app.lib.iosArm64Main") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.iosMain", DependencyScope.COMPILE) } + module("lib-and-app.lib.iosArm64Test") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonTest", DependencyScope.TEST) @@ -609,18 +648,27 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("lib-and-app.lib.iosMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.iosTest", DependencyScope.TEST) } + module("lib-and-app.lib.iosMain") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) } + module("lib-and-app.lib.iosTest") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonTest", DependencyScope.TEST) moduleDependency("lib-and-app.lib.iosMain", DependencyScope.TEST) } + module("lib-and-app.lib.iosX64Main") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.iosMain", DependencyScope.COMPILE) } + + module("lib-and-app.lib.iosSimulatorArm64Main", isOptional = true) { + moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) + moduleDependency("lib-and-app.lib.iosMain", DependencyScope.COMPILE) + } + module("lib-and-app.lib.iosX64Test") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonTest", DependencyScope.TEST) @@ -628,10 +676,20 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("lib-and-app.lib.iosMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.iosTest", DependencyScope.TEST) } + + module("lib-and-app.lib.iosSimulatorArm64Test", isOptional = true) { + moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) + moduleDependency("lib-and-app.lib.commonTest", DependencyScope.TEST) + moduleDependency("lib-and-app.lib.iosSimulatorArm64Main", DependencyScope.TEST) + moduleDependency("lib-and-app.lib.iosMain", DependencyScope.TEST) + moduleDependency("lib-and-app.lib.iosTest", DependencyScope.TEST) + } + module("lib-and-app.lib.jsMain") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.COMPILE) } + module("lib-and-app.lib.jsTest") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonTest", DependencyScope.TEST) @@ -640,18 +698,22 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.jvmAndJsTest", DependencyScope.TEST) } + module("lib-and-app.lib.jvmAndJsMain") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) } + module("lib-and-app.lib.jvmAndJsTest") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonTest", DependencyScope.TEST) moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.TEST) } + module("lib-and-app.lib.jvmMain") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.COMPILE) moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.COMPILE) } + module("lib-and-app.lib.jvmTest") { moduleDependency("lib-and-app.lib.commonMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.commonTest", DependencyScope.TEST) @@ -660,19 +722,24 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("lib-and-app.lib.jvmAndJsMain", DependencyScope.TEST) moduleDependency("lib-and-app.lib.jvmAndJsTest", DependencyScope.TEST) } + module("published-lib-consumer") + module("published-lib-consumer.commonMain") { libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:commonMain:1.0", DependencyScope.COMPILE) } + module("published-lib-consumer.commonTest") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.TEST) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:commonMain:1.0", DependencyScope.TEST) } + module("published-lib-consumer.iosArm64Main") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.COMPILE) moduleDependency("published-lib-consumer.iosMain", DependencyScope.COMPILE) libraryDependency(Regex("Gradle: com.h0tk3y.mpp.demo:lib-iosarm64:(klib:)?1.0"), DependencyScope.COMPILE) } + module("published-lib-consumer.iosArm64Test") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.commonTest", DependencyScope.TEST) @@ -681,11 +748,13 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("published-lib-consumer.iosArm64Main", DependencyScope.TEST) libraryDependency(Regex("Gradle: com.h0tk3y.mpp.demo:lib-iosarm64:(klib:)?1.0"), DependencyScope.TEST) } + module("published-lib-consumer.iosMain") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.COMPILE) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:commonMain:1.0", DependencyScope.COMPILE) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:iosMain:1.0", DependencyScope.COMPILE) } + module("published-lib-consumer.iosTest") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.commonTest", DependencyScope.TEST) @@ -693,11 +762,19 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:commonMain:1.0", DependencyScope.TEST) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:iosMain:1.0", DependencyScope.TEST) } + module("published-lib-consumer.iosX64Main") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.COMPILE) moduleDependency("published-lib-consumer.iosMain", DependencyScope.COMPILE) libraryDependency(Regex("Gradle: com.h0tk3y.mpp.demo:lib-iosx64:(klib:)?1.0"), DependencyScope.COMPILE) } + + module("published-lib-consumer.iosSimulatorArm64Main", isOptional = true) { + moduleDependency("published-lib-consumer.commonMain", DependencyScope.COMPILE) + moduleDependency("published-lib-consumer.iosMain", DependencyScope.COMPILE) + libraryDependency(Regex("Gradle: com.h0tk3y.mpp.demo:lib-iossimulatorarm64:(klib:)?1.0"), DependencyScope.COMPILE) + } + module("published-lib-consumer.iosX64Test") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.commonTest", DependencyScope.TEST) @@ -706,36 +783,50 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC moduleDependency("published-lib-consumer.iosX64Main", DependencyScope.TEST) libraryDependency(Regex("Gradle: com.h0tk3y.mpp.demo:lib-iosx64:(klib:)?1.0"), DependencyScope.TEST) } + + module("published-lib-consumer.iosSimulatorArm64Test", isOptional = true) { + moduleDependency("published-lib-consumer.commonMain", DependencyScope.TEST) + moduleDependency("published-lib-consumer.commonTest", DependencyScope.TEST) + moduleDependency("published-lib-consumer.iosMain", DependencyScope.TEST) + moduleDependency("published-lib-consumer.iosTest", DependencyScope.TEST) + moduleDependency("published-lib-consumer.iosSimulatorArm64Main", DependencyScope.TEST) + libraryDependency(Regex("Gradle: com.h0tk3y.mpp.demo:lib-iossimulatorarm64:(klib:)?1.0"), DependencyScope.TEST) + } + module("published-lib-consumer.jsMain") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.COMPILE) moduleDependency("published-lib-consumer.jvmAndJsMain", DependencyScope.COMPILE) - libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:all:1.0", DependencyScope.COMPILE) + libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:all:1.0", DependencyScope.COMPILE, isOptional = true) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib-js:1.0", DependencyScope.COMPILE) } + module("published-lib-consumer.jsTest") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.commonTest", DependencyScope.TEST) moduleDependency("published-lib-consumer.jvmAndJsMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.jsMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.jsMain", DependencyScope.RUNTIME, isOptional = true) - libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:all:1.0", DependencyScope.TEST) + libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:all:1.0", DependencyScope.TEST, isOptional = true) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib-js:1.0", DependencyScope.TEST) } + module("published-lib-consumer.jvmMain") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.COMPILE) moduleDependency("published-lib-consumer.jvmAndJsMain", DependencyScope.COMPILE) - libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:all:1.0", DependencyScope.COMPILE) + libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:all:1.0", DependencyScope.COMPILE, isOptional = true) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib-jvm:1.0", DependencyScope.COMPILE) } + module("published-lib-consumer.jvmTest") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.commonTest", DependencyScope.TEST) moduleDependency("published-lib-consumer.jvmAndJsMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.jvmMain", DependencyScope.TEST) moduleDependency("published-lib-consumer.jvmMain", DependencyScope.RUNTIME, isOptional = true) - libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:all:1.0", DependencyScope.TEST) + libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:all:1.0", DependencyScope.TEST, isOptional = true) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib-jvm:1.0", DependencyScope.TEST) } + module("published-lib-consumer.jvmAndJsMain") { moduleDependency("published-lib-consumer.commonMain", DependencyScope.COMPILE) libraryDependency("Gradle: com.h0tk3y.mpp.demo:lib:commonMain:1.0", DependencyScope.COMPILE) @@ -756,4 +847,6 @@ class HmppImportAndHighlightingTests : MultiplePluginVersionGradleImportingTestC configureByFiles() importProject() } + + override fun printOutput(stream: PrintStream, text: String) = stream.println(text) } diff --git a/plugins/kotlin/gradle/gradle-idea/test/org/jetbrains/kotlin/gradle/projectStructureDSL.kt b/plugins/kotlin/gradle/gradle-idea/test/org/jetbrains/kotlin/gradle/projectStructureDSL.kt index 6066696f9ac4..d5013ad389ab 100644 --- a/plugins/kotlin/gradle/gradle-idea/test/org/jetbrains/kotlin/gradle/projectStructureDSL.kt +++ b/plugins/kotlin/gradle/gradle-idea/test/org/jetbrains/kotlin/gradle/projectStructureDSL.kt @@ -57,10 +57,12 @@ class ProjectInfo( allModulesAsserter = body } - fun module(name: String, body: ModuleInfo.() -> Unit = {}) { + fun module(name: String, isOptional: Boolean = false, body: ModuleInfo.() -> Unit = {}) { val module = moduleManager.findModuleByName(name) if (module == null) { - messageCollector.report("No module found: '$name' in ${moduleManager.modules.map { it.name }}") + if (!isOptional) { + messageCollector.report("No module found: '$name' in ${moduleManager.modules.map { it.name }}") + } return } @@ -166,11 +168,11 @@ class ModuleInfo(val module: Module, private val projectInfo: ProjectInfo) { checkReport("Additional arguments", arguments, actualArguments) } - fun libraryDependency(libraryName: String, scope: DependencyScope) { - libraryDependency(Regex.fromLiteral(libraryName), scope) + fun libraryDependency(libraryName: String, scope: DependencyScope, isOptional: Boolean = false) { + libraryDependency(Regex.fromLiteral(libraryName), scope, isOptional) } - fun libraryDependency(libraryName: Regex, scope: DependencyScope) { + fun libraryDependency(libraryName: Regex, scope: DependencyScope, isOptional: Boolean = false) { val libraryEntries = rootModel.orderEntries.filterIsInstance() .filter { it.libraryName?.matches(libraryName) == true } @@ -178,7 +180,7 @@ class ModuleInfo(val module: Module, private val projectInfo: ProjectInfo) { report("Multiple root entries for library $libraryName") } - if (libraryEntries.isEmpty()) { + if (!isOptional && libraryEntries.isEmpty()) { val candidate = rootModel.orderEntries .filterIsInstance() .sortedWith(Comparator { o1, o2 -> @@ -191,7 +193,7 @@ class ModuleInfo(val module: Module, private val projectInfo: ProjectInfo) { report("Expected library dependency $libraryName, found nothing. Most probably candidate: $candidateName") } - checkLibrary(libraryEntries.singleOrNull(), libraryName.toString(), scope) + checkLibrary(libraryEntries.firstOrNull() ?: return, scope) } fun libraryDependencyByUrl(classesUrl: String, scope: DependencyScope) { @@ -207,15 +209,14 @@ class ModuleInfo(val module: Module, private val projectInfo: ProjectInfo) { report("Multiple entries for library $classesUrl") } - checkLibrary(libraryEntries.singleOrNull(), classesUrl.toString(), scope) - } - - private fun checkLibrary(libraryEntry: LibraryOrderEntry?, id: String, scope: DependencyScope) { - if (libraryEntry == null) { - report("No library dependency found for $id") - return + if (libraryEntries.isEmpty()) { + report("No library dependency found for $classesUrl") } + checkLibrary(libraryEntries.firstOrNull() ?: return, scope) + } + + private fun checkLibrary(libraryEntry: LibraryOrderEntry, scope: DependencyScope) { checkDependencyScope(libraryEntry, scope) expectedDependencies += libraryEntry expectedDependencyNames += libraryEntry.debugText diff --git a/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/hmppLibAndConsumer/lib-and-app/gradle.properties b/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/hmppLibAndConsumer/lib-and-app/gradle.properties index 0ae1e640ff10..1d0d44f1d8ed 100755 --- a/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/hmppLibAndConsumer/lib-and-app/gradle.properties +++ b/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/hmppLibAndConsumer/lib-and-app/gradle.properties @@ -1,2 +1,2 @@ kotlin.mpp.enableGranularSourceSetsMetadata=true -kotlin.mpp.enableCompatibilityMetadataVariant=true \ No newline at end of file +kotlin.native.enableDependencyPropagation=false diff --git a/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/hmppLibAndConsumer/published-lib-consumer/gradle.properties b/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/hmppLibAndConsumer/published-lib-consumer/gradle.properties index 0ae1e640ff10..1d0d44f1d8ed 100755 --- a/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/hmppLibAndConsumer/published-lib-consumer/gradle.properties +++ b/plugins/kotlin/idea/tests/testData/gradle/hmppImportAndHighlighting/hmppLibAndConsumer/published-lib-consumer/gradle.properties @@ -1,2 +1,2 @@ kotlin.mpp.enableGranularSourceSetsMetadata=true -kotlin.mpp.enableCompatibilityMetadataVariant=true \ No newline at end of file +kotlin.native.enableDependencyPropagation=false