From 395e5446fb71a25469dca4218f6fa77bf80a9aa8 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 8 May 2015 16:22:27 +0300 Subject: [PATCH] Place light classes finder before standard PsiElementFinderImpl Source elements should have priority over libraries. Original commit: 3c7e7ffda6b376fe336eb94ede87e372ea21a3e4 --- .../kotlin/jps/build/KotlinJpsBuildTest.java | 14 +++++++++ .../kotlinProject.ipr | 31 +++++++++++++++++++ .../module/module.iml | 12 +++++++ .../module/src/module/A.kt | 6 ++++ .../module/src/module/B.kt | 9 ++++++ .../module/src/module/C.java | 5 +++ .../oldModuleLib/src/module/A.kt | 5 +++ .../oldModuleLib/src/module/B.kt | 8 +++++ .../oldModuleLib/src/module/C.java | 5 +++ 9 files changed, 95 insertions(+) create mode 100644 jps/jps-plugin/testData/general/DependencyToOldKotlinLib/kotlinProject.ipr create mode 100644 jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/module.iml create mode 100644 jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/A.kt create mode 100644 jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/B.kt create mode 100644 jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/C.java create mode 100644 jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/A.kt create mode 100644 jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/B.kt create mode 100644 jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/C.java diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.java b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.java index 39a4728acb3..697994f07c6 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.java +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.java @@ -431,6 +431,20 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase { result.assertSuccessful(); } + public void testDependencyToOldKotlinLib() throws IOException { + initProject(); + + File libraryJar = MockLibraryUtil.compileLibraryToJar( + workDir.getAbsolutePath() + File.separator + "oldModuleLib/src", "module-lib", false); + + addDependency(JpsJavaDependencyScope.COMPILE, Lists.newArrayList(findModule("module")), false, "module-lib", libraryJar); + + addKotlinRuntimeDependency(); + + BuildResult result = makeAll(); + result.assertSuccessful(); + } + private void createKotlinJavaScriptLibraryArchive() { File jarFile = new File(workDir, KOTLIN_JS_LIBRARY_JAR); try { diff --git a/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/kotlinProject.ipr b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/kotlinProject.ipr new file mode 100644 index 00000000000..d324e31411d --- /dev/null +++ b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/kotlinProject.ipr @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/module.iml b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/module.iml new file mode 100644 index 00000000000..f8d6a06273d --- /dev/null +++ b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/module.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/A.kt b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/A.kt new file mode 100644 index 00000000000..b57a44e4536 --- /dev/null +++ b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/A.kt @@ -0,0 +1,6 @@ +package module + +public trait A { + fun oldFun(): Int = 1 + fun newFun(): Int = 42 +} diff --git a/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/B.kt b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/B.kt new file mode 100644 index 00000000000..80f01b0be85 --- /dev/null +++ b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/B.kt @@ -0,0 +1,9 @@ +package module + +public class B(private val c: C) { + fun foo() { + val a = c.getA() + a.oldFun() + a.newFun() + } +} diff --git a/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/C.java b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/C.java new file mode 100644 index 00000000000..0716f11da8f --- /dev/null +++ b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/module/src/module/C.java @@ -0,0 +1,5 @@ +package module; + +public interface C { + A getA(); +} diff --git a/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/A.kt b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/A.kt new file mode 100644 index 00000000000..0a6c17d7a78 --- /dev/null +++ b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/A.kt @@ -0,0 +1,5 @@ +package module + +public trait A { + fun oldFun(): Int = 1 +} diff --git a/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/B.kt b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/B.kt new file mode 100644 index 00000000000..74aad6e1f3f --- /dev/null +++ b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/B.kt @@ -0,0 +1,8 @@ +package module + +public class B(private val c: C) { + fun foo() { + val a = c.getA() + a.oldFun() + } +} diff --git a/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/C.java b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/C.java new file mode 100644 index 00000000000..0716f11da8f --- /dev/null +++ b/jps/jps-plugin/testData/general/DependencyToOldKotlinLib/oldModuleLib/src/module/C.java @@ -0,0 +1,5 @@ +package module; + +public interface C { + A getA(); +}