diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompilationOptions.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompilationOptions.kt index bb30ea3129d..e50fb1703a1 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompilationOptions.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompilationOptions.kt @@ -73,7 +73,7 @@ class IncrementalCompilationOptions( /** * Root project directory, used to resolve relative paths */ - val rootProjectDir: File, + val rootProjectDir: File?, kotlinScriptExtensions: Array? = null, val withAbiSnapshot: Boolean = false, val preciseCompilationResultsBackup: Boolean = false, diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt index 273edd8de74..d12117536f7 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt @@ -559,8 +559,9 @@ abstract class CompileServiceImplBase( val modulesApiHistory = incrementalCompilationOptions.multiModuleICSettings?.run { val modulesInfo = incrementalCompilationOptions.modulesInfo ?: error("The build is configured to use the history-file based IC approach, but doesn't provide the modulesInfo") - - ModulesApiHistoryJs(incrementalCompilationOptions.rootProjectDir, modulesInfo) + val rootProjectDir = incrementalCompilationOptions.rootProjectDir + ?: error("rootProjectDir is expected to be non null when the history-file based IC approach is used") + ModulesApiHistoryJs(rootProjectDir, modulesInfo) } ?: EmptyModulesApiHistory val compiler = IncrementalJsCompilerRunner( @@ -617,6 +618,9 @@ abstract class CompileServiceImplBase( reporter.info { "Use module detection: $useModuleDetection" } val modulesInfo = incrementalCompilationOptions.modulesInfo ?: error("The build is configured to use the history-file based IC approach, but doesn't provide the modulesInfo") + check(projectRoot != null) { + "rootProjectDir is expected to be non null when the history-file based IC approach is used" + } if (!useModuleDetection) { ModulesApiHistoryJvm(projectRoot, modulesInfo) diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/BuildReportICReporter.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/BuildReportICReporter.kt index 6eae91313ca..69259c6775c 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/BuildReportICReporter.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/BuildReportICReporter.kt @@ -19,7 +19,7 @@ import java.io.File @VisibleForTesting class BuildReportICReporter( private val compilationResults: CompilationResults, - rootDir: File, + rootDir: File?, private val isVerbose: Boolean = false ) : ICReporterBase(rootDir), RemoteICReporter { private val icLogLines = arrayListOf() diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/DebugMessagesICReporter.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/DebugMessagesICReporter.kt index 2cf85fab6cf..bc8af4954bc 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/DebugMessagesICReporter.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/report/DebugMessagesICReporter.kt @@ -19,7 +19,7 @@ import java.io.File @VisibleForTesting class DebugMessagesICReporter( private val servicesFacade: CompilerServicesFacadeBase, - rootDir: File, + rootDir: File?, private val reportSeverity: ICReporter.ReportSeverity ) : ICReporterBase(rootDir), RemoteICReporter {