Fix support of directories as sources in build files (-Xbuild-file)

#KT-27775 Fixed
This commit is contained in:
Alexander Udalov
2018-10-26 16:03:17 +02:00
parent 0a2d1b409b
commit d28c6559b8
7 changed files with 43 additions and 3 deletions
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.cli.jvm.compiler
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.openapi.vfs.VfsUtilCore
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.psi.PsiJavaModule
@@ -130,8 +131,17 @@ object KotlinToJVMBytecodeCompiler {
for (module in chunk) {
ProgressIndicatorAndCompilationCanceledStatus.checkCanceled()
val moduleSourceFiles = getAbsolutePaths(buildFile, module.getSourceFiles()).map(localFileSystem::findFileByPath)
val ktFiles = environment.getSourceFiles().filter { file -> file.virtualFile in moduleSourceFiles }
val (moduleSourceDirs, moduleSourceFiles) =
getAbsolutePaths(buildFile, module.getSourceFiles())
.mapNotNull(localFileSystem::findFileByPath)
.partition(VirtualFile::isDirectory)
val ktFiles = environment.getSourceFiles().filter { file ->
val virtualFile = file.virtualFile
virtualFile in moduleSourceFiles || moduleSourceDirs.any { dir ->
VfsUtilCore.isAncestor(dir, virtualFile, true)
}
}
if (!checkKotlinPackageUsage(environment, ktFiles)) return false