From a88bfb726d57676df7317e3f187b206ef96d282a Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Wed, 17 Oct 2018 15:59:27 +0300 Subject: [PATCH] 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 --- .../sources/DefaultLanguageSettingsBuilder.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultLanguageSettingsBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultLanguageSettingsBuilder.kt index 794821382ce..f1434f6f545 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultLanguageSettingsBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultLanguageSettingsBuilder.kt @@ -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 + var compilerPluginOptionsTask: Lazy = lazyOf(null) - val compilerPluginArguments: List + val compilerPluginArguments: List? 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") } } }