diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt index ce0c8bb626e..5a7efdc5d5b 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt @@ -103,7 +103,7 @@ class IncrementalCacheImpl( private val supertypesMap = registerExperimentalMap(SupertypesMap(SUPERTYPES.storageFile)) private val dependents = arrayListOf() - private val outputDir = requireNotNull(target.outputDir) { "Target is expected to have output directory: $target" } + private val outputDir by lazy(LazyThreadSafetyMode.NONE) { requireNotNull(target.outputDir) { "Target is expected to have output directory: $target" } } private val dependentsWithThis: Sequence get() = sequenceOf(this).plus(dependents.asSequence()) diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt index 545ab9e091c..04964f65aad 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt @@ -732,6 +732,10 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { doTest() } + fun testKotlinProjectWithEmptyOutputDirInSomeModules() { + doTest() + } + private fun BuildResult.checkErrors() { val actualErrors = getMessages(BuildMessage.Kind.ERROR) .map { it as CompilerMessage } diff --git a/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/kotlinProject.ipr b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/kotlinProject.ipr new file mode 100644 index 00000000000..7dc391eaceb --- /dev/null +++ b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/kotlinProject.ipr @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/produciton_module/produciton_module.iml b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/produciton_module/produciton_module.iml new file mode 100644 index 00000000000..786d75db373 --- /dev/null +++ b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/produciton_module/produciton_module.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/produciton_module/src/foo.kt b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/produciton_module/src/foo.kt new file mode 100644 index 00000000000..f3b2ebc5254 --- /dev/null +++ b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/produciton_module/src/foo.kt @@ -0,0 +1,3 @@ +fun foo() { + +} diff --git a/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/test_module/test/test.kt b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/test_module/test/test.kt new file mode 100644 index 00000000000..798f616299e --- /dev/null +++ b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/test_module/test/test.kt @@ -0,0 +1,3 @@ +fun test() { + foo() +} diff --git a/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/test_module/test_module.iml b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/test_module/test_module.iml new file mode 100644 index 00000000000..62cd41c3ccb --- /dev/null +++ b/jps-plugin/testData/general/KotlinProjectWithEmptyOutputDirInSomeModules/test_module/test_module.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +