Fix uninitialized lateinit compilerPluginOptionsTask in non-MPP

When a non-MPP is imported into the IDE, the importer anyway tries to
build the MPP source sets model, so it tries to access the
`compilerPluginArguments` and `compilerPluginClasspath`, resulting in
an import error.

Issue #KT-27646 Fixed
This commit is contained in:
Sergey Igushkin
2018-10-17 15:59:27 +03:00
parent 5d040c459b
commit a88bfb726d
@@ -63,25 +63,25 @@ internal class DefaultLanguageSettingsBuilder : LanguageSettingsBuilder {
}
/* A Kotlin task that is responsible for code analysis of the owner of this language settings builder. */
lateinit var compilerPluginOptionsTask: Lazy<AbstractCompile>
var compilerPluginOptionsTask: Lazy<AbstractCompile?> = lazyOf(null)
val compilerPluginArguments: List<String>
val compilerPluginArguments: List<String>?
get() {
val pluginOptionsTask = compilerPluginOptionsTask.value
val pluginOptionsTask = compilerPluginOptionsTask.value ?: return null
return when (pluginOptionsTask) {
is AbstractKotlinCompile<*> -> pluginOptionsTask.pluginOptions
is KotlinNativeCompile -> pluginOptionsTask.compilerPluginOptions
else -> error("Unexpected task: $compilerPluginOptionsTask")
else -> error("Unexpected task: $pluginOptionsTask")
}.arguments
}
val compilerPluginClasspath: FileCollection
val compilerPluginClasspath: FileCollection?
get() {
val pluginClasspathTask = compilerPluginOptionsTask.value
val pluginClasspathTask = compilerPluginOptionsTask.value ?: return null
return when (pluginClasspathTask) {
is AbstractKotlinCompile<*> -> pluginClasspathTask.pluginClasspath
is KotlinNativeCompile -> pluginClasspathTask.compilerPluginClasspath ?: pluginClasspathTask.project.files()
else -> error("Unexpected task: $compilerPluginOptionsTask")
else -> error("Unexpected task: $pluginClasspathTask")
}
}
}