diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/PackagePartClassUtils.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/PackagePartClassUtils.java index afc9f481487..6c027bcf2b3 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/PackagePartClassUtils.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/PackagePartClassUtils.java @@ -41,10 +41,7 @@ import static org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClass public class PackagePartClassUtils { public static int getPathHashCode(@NotNull VirtualFile file) { - // Conversion to system-dependent name seems to be unnecessary, but it's hard to check now: - // it was introduced when fixing KT-2839, which appeared again (KT-3639). - // If you try to remove it, run tests on Windows. - return FileUtil.toSystemDependentName(file.getPath()).hashCode(); + return file.getPath().toLowerCase().hashCode(); } @NotNull diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalProjectPathCaseChangedTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalProjectPathCaseChangedTest.kt index 9a7d734a87e..27cb4449ec7 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalProjectPathCaseChangedTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalProjectPathCaseChangedTest.kt @@ -24,6 +24,10 @@ public class IncrementalProjectPathCaseChangedTest : AbstractIncrementalJpsTest( doTest("jps-plugin/testData/incremental/custom/projectPathCaseChanged/") } + fun testProjectPathCaseChangedMultiFile() { + doTest("jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/") + } + override fun doTest(testDataPath: String) { if (SystemInfoRt.isFileSystemCaseSensitive) { return diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.java b/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.java index c2a386cc95f..b2e15a5f3bc 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.java +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.java @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.jps.build; import com.google.common.collect.Lists; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.testFramework.LightVirtualFile; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.ContainerUtil; @@ -614,8 +615,8 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase { } private String packagePartClass(String moduleName, String fileName, String packageClassFqName) { - File file = new File(workDir, fileName); - LightVirtualFile fakeVirtualFile = new LightVirtualFile(file.getPath()) { + String path = FileUtilRt.toSystemIndependentName(new File(workDir, fileName).getAbsolutePath()); + LightVirtualFile fakeVirtualFile = new LightVirtualFile(path) { @NotNull @Override public String getPath() { diff --git a/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/bar.kt b/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/bar.kt new file mode 100644 index 00000000000..fe45df99555 --- /dev/null +++ b/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/bar.kt @@ -0,0 +1,2 @@ +fun bar() { +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/build.log b/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/build.log new file mode 100644 index 00000000000..4cf233bbc00 --- /dev/null +++ b/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/build.log @@ -0,0 +1,7 @@ +Cleaning output files: +out/production/module/_DefaultPackage$foo$*.class +out/production/module/_DefaultPackage.class +End of files +Compiling files: +src/foo.kt +End of files \ No newline at end of file diff --git a/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/foo.kt b/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/foo.kt new file mode 100644 index 00000000000..f23d7f69d2f --- /dev/null +++ b/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/foo.kt @@ -0,0 +1,2 @@ +fun foo() { +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/foo.kt.new b/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/foo.kt.new new file mode 100644 index 00000000000..f23d7f69d2f --- /dev/null +++ b/jps-plugin/testData/incremental/custom/projectPathCaseChangedMultiFile/foo.kt.new @@ -0,0 +1,2 @@ +fun foo() { +} \ No newline at end of file