diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreEnvironmentUtils.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreEnvironmentUtils.kt index fb121b95eda..78426681cdd 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreEnvironmentUtils.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/coreEnvironmentUtils.kt @@ -44,7 +44,8 @@ inline fun List.forAllFiles( val virtualFileCreator = PreprocessedFileCreator(project) for ((sourceRootPath, isCommon) in this) { - val vFile = localFileSystem.findFileByPath(sourceRootPath) + val sourceRoot = File(sourceRootPath) + val vFile = localFileSystem.findFileByPath(sourceRoot.normalize().path) if (vFile == null) { val message = "Source file or directory not found: $sourceRootPath" @@ -63,10 +64,10 @@ inline fun List.forAllFiles( continue } - for (file in File(sourceRootPath).walkTopDown()) { + for (file in sourceRoot.walkTopDown()) { if (!file.isFile) continue - val virtualFile = localFileSystem.findFileByPath(file.absolutePath)?.let(virtualFileCreator::create) + val virtualFile = localFileSystem.findFileByPath(file.absoluteFile.normalize().path)?.let(virtualFileCreator::create) if (virtualFile != null && processedFiles.add(virtualFile)) { body(virtualFile, isCommon) } diff --git a/compiler/testData/cli/jvm/duplicateSourcesNormalized.args b/compiler/testData/cli/jvm/duplicateSourcesNormalized.args new file mode 100644 index 00000000000..9600e48fbf8 --- /dev/null +++ b/compiler/testData/cli/jvm/duplicateSourcesNormalized.args @@ -0,0 +1,4 @@ +$TESTDATA_DIR$/simple.kt +$TESTDATA_DIR$/./simple.kt +-d +$TEMP_DIR$ diff --git a/compiler/testData/cli/jvm/duplicateSourcesNormalized.out b/compiler/testData/cli/jvm/duplicateSourcesNormalized.out new file mode 100644 index 00000000000..d86bac9de59 --- /dev/null +++ b/compiler/testData/cli/jvm/duplicateSourcesNormalized.out @@ -0,0 +1 @@ +OK diff --git a/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java index 5cb83aa19f7..00a96c39773 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java @@ -264,6 +264,11 @@ public class CliTestGenerated extends AbstractCliTest { runTest("compiler/testData/cli/jvm/duplicateSourcesInModule.args"); } + @TestMetadata("duplicateSourcesNormalized.args") + public void testDuplicateSourcesNormalized() throws Exception { + runTest("compiler/testData/cli/jvm/duplicateSourcesNormalized.args"); + } + @TestMetadata("emptySources.args") public void testEmptySources() throws Exception { runTest("compiler/testData/cli/jvm/emptySources.args");