diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/primitiveExtras.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/primitiveExtras.kt index c7fcc5fe164..be9c9ca3e3e 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/primitiveExtras.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/extras/primitiveExtras.kt @@ -7,8 +7,7 @@ package org.jetbrains.kotlin.gradle.idea.tcs.extras import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryDependency import org.jetbrains.kotlin.tooling.core.extrasKeyOf -import org.jetbrains.kotlin.tooling.core.getValue -import org.jetbrains.kotlin.tooling.core.setValue +import org.jetbrains.kotlin.tooling.core.readWriteProperty val isIdeaProjectLevelKey = extrasKeyOf("isIdeaProjectLevel") @@ -16,7 +15,7 @@ val isIdeaProjectLevelKey = extrasKeyOf("isIdeaProjectLevel") * Marks any binary dependency as Global in the sense of "this library is considered * the same, no matter in which Gradle project / IntelliJ module it will be used */ -var IdeaKotlinBinaryDependency.isIdeaProjectLevel by isIdeaProjectLevelKey +var IdeaKotlinBinaryDependency.isIdeaProjectLevel by isIdeaProjectLevelKey.readWriteProperty.notNull(false) val isNativeDistributionKey = extrasKeyOf("isNativeDistribution") @@ -25,7 +24,7 @@ val isNativeDistributionKey = extrasKeyOf("isNativeDistribution") /** * Marks this dependency as 'coming from the native distribution' */ -var IdeaKotlinBinaryDependency.isNativeDistribution by isNativeDistributionKey +var IdeaKotlinBinaryDependency.isNativeDistribution by isNativeDistributionKey.readWriteProperty.notNull(false) val isNativeStdlibKey = extrasKeyOf("isNativeStdlib") @@ -33,4 +32,4 @@ val isNativeStdlibKey = extrasKeyOf("isNativeStdlib") /** * Marks the dependency as the native stdlib (which is special in the native distribution) */ -var IdeaKotlinBinaryDependency.isNativeStdlib by isNativeStdlibKey \ No newline at end of file +var IdeaKotlinBinaryDependency.isNativeStdlib by isNativeStdlibKey.readWriteProperty.notNull(false) \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinCompilation.kt index cc2446725b1..adc994c89bd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinCompilation.kt @@ -11,11 +11,10 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationConfigurationsContainer import org.jetbrains.kotlin.gradle.utils.ObservableSet +import org.jetbrains.kotlin.tooling.core.HasMutableExtras import org.jetbrains.kotlin.tooling.core.MutableExtras -internal interface InternalKotlinCompilation : KotlinCompilation { - val extras: MutableExtras - +internal interface InternalKotlinCompilation : KotlinCompilation, HasMutableExtras { override val kotlinSourceSets: ObservableSet override val allKotlinSourceSets: ObservableSet diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationSourceSetInclusion.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationSourceSetInclusion.kt index 706b2ed032e..49ec47eabf9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationSourceSetInclusion.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationSourceSetInclusion.kt @@ -15,8 +15,8 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.addSourcesToKotlinCompileTask import org.jetbrains.kotlin.gradle.plugin.sources.defaultSourceSetLanguageSettingsChecker import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation +import org.jetbrains.kotlin.tooling.core.extrasFactoryProperty import org.jetbrains.kotlin.tooling.core.extrasKeyOf -import org.jetbrains.kotlin.tooling.core.getOrPut import java.util.concurrent.Callable internal class KotlinCompilationSourceSetInclusion( @@ -69,16 +69,13 @@ internal class KotlinCompilationSourceSetInclusion( } private companion object { + /** - * Key used to store already processed source sets on the compilation instance itself + * Used to store already processed source sets on the compilation instance itself * to avoid re-processing of unnecessary source sets! */ - private val includedSourceSetsKey = extrasKeyOf>( - KotlinCompilationSourceSetInclusion::class.java.name - ) - val InternalKotlinCompilation<*>.includedSourceSets: MutableSet - get() = extras.getOrPut(includedSourceSetsKey, { hashSetOf() }) + by extrasFactoryProperty(extrasKeyOf(KotlinCompilationSourceSetInclusion::class.java.name), { hashSetOf() }) }