From a58bc7f301de2969b7f690046f976ec1e0b95669 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Mon, 9 Apr 2018 13:57:37 +0300 Subject: [PATCH] Fix transitive module dependencies for scripts --- .../kotlin/idea/caches/project/ScriptModuleInfos.kt | 2 +- .../multiModule/mainModule/ClassFromModule1.java | 3 +++ .../highlighting/multiModule/mainModule/script.kts | 4 ++++ .../highlighting/multiModule/module2/ClassFromModule2.java | 3 +++ .../ScriptConfigurationHighlightingTestGenerated.java | 6 ++++++ 5 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 idea/testData/script/definition/highlighting/multiModule/mainModule/ClassFromModule1.java create mode 100644 idea/testData/script/definition/highlighting/multiModule/mainModule/script.kts create mode 100644 idea/testData/script/definition/highlighting/multiModule/module2/ClassFromModule2.java diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt index b566a7c1f49..5c4dacf7ae2 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt @@ -47,7 +47,7 @@ data class ScriptModuleInfo( override fun dependencies(): List { return arrayListOf(this).apply { add(ScriptDependenciesInfo.ForFile(project, this@ScriptModuleInfo)) - relatedModuleSourceInfo?.let { add(it) } + relatedModuleSourceInfo?.let { addAll(it.dependencies()) } findJdk(externalDependencies, project)?.let { add(SdkInfo(project, it)) } } } diff --git a/idea/testData/script/definition/highlighting/multiModule/mainModule/ClassFromModule1.java b/idea/testData/script/definition/highlighting/multiModule/mainModule/ClassFromModule1.java new file mode 100644 index 00000000000..918eb5d331d --- /dev/null +++ b/idea/testData/script/definition/highlighting/multiModule/mainModule/ClassFromModule1.java @@ -0,0 +1,3 @@ +public class ClassFromModule1 { + +} \ No newline at end of file diff --git a/idea/testData/script/definition/highlighting/multiModule/mainModule/script.kts b/idea/testData/script/definition/highlighting/multiModule/mainModule/script.kts new file mode 100644 index 00000000000..70828e13dc2 --- /dev/null +++ b/idea/testData/script/definition/highlighting/multiModule/mainModule/script.kts @@ -0,0 +1,4 @@ +val c1 = ClassFromModule1() +val c2 = ClassFromModule2() + +// DEPENDENCIES: classpath:runtime-classes \ No newline at end of file diff --git a/idea/testData/script/definition/highlighting/multiModule/module2/ClassFromModule2.java b/idea/testData/script/definition/highlighting/multiModule/module2/ClassFromModule2.java new file mode 100644 index 00000000000..6ddb7475967 --- /dev/null +++ b/idea/testData/script/definition/highlighting/multiModule/module2/ClassFromModule2.java @@ -0,0 +1,3 @@ +public class ClassFromModule2 { + +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationHighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationHighlightingTestGenerated.java index 77d4f0f0509..8dc36e13c01 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationHighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationHighlightingTestGenerated.java @@ -91,6 +91,12 @@ public class ScriptConfigurationHighlightingTestGenerated extends AbstractScript doTest(fileName); } + @TestMetadata("multiModule") + public void testMultiModule() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/script/definition/highlighting/multiModule/"); + doTest(fileName); + } + @TestMetadata("noResolver") public void testNoResolver() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/script/definition/highlighting/noResolver/");