From 6cc7566b2e6cf215a90bd1aa544b96f93d26d51f Mon Sep 17 00:00:00 2001 From: "Yaroslav.Chernyshev" Date: Tue, 9 Nov 2021 12:47:36 +0300 Subject: [PATCH] [CHERRY PICKED FROM IJ] [Gradle, Importing] Attach KotlinGradleSourceSetData nodes to KotlinGradleProjectData instead GradleProjectData It fixes issues in AS, when GradleProjectData for variants are not created GitOrigin-RevId: dbd023d0f4fba8b14870aa8952ac0b395a2e4096 Original commit: https://github.com/JetBrains/intellij-community/commit/1c9630cf220df2b380aaf54f28497e41245d8ed6 --- .../CompilerArgumentsContentProspector.kt | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/jps/jps-common/src/org/jetbrains/kotlin/arguments/CompilerArgumentsContentProspector.kt b/jps/jps-common/src/org/jetbrains/kotlin/arguments/CompilerArgumentsContentProspector.kt index 4d497f20551..e67fc4a1b57 100644 --- a/jps/jps-common/src/org/jetbrains/kotlin/arguments/CompilerArgumentsContentProspector.kt +++ b/jps/jps-common/src/org/jetbrains/kotlin/arguments/CompilerArgumentsContentProspector.kt @@ -11,33 +11,32 @@ import kotlin.reflect.KType import kotlin.reflect.full.memberProperties object CompilerArgumentsContentProspector { - private val argumentPropertiesCache: MutableMap, List>> = + private val argumentPropertiesCache: MutableMap, Collection>> = mutableMapOf() - private val flagArgumentPropertiesCache: MutableMap, List>> = + private val flagArgumentPropertiesCache: MutableMap, Collection>> = mutableMapOf() - private val stringArgumentPropertiesCache: MutableMap, List>> = + private val stringArgumentPropertiesCache: MutableMap, Collection>> = mutableMapOf() - private val arrayArgumentPropertiesCache: MutableMap, List?>>> = + private val arrayArgumentPropertiesCache: MutableMap, Collection?>>> = mutableMapOf() - private fun getCompilerArguments(kClass: KClass) = argumentPropertiesCache.getOrPut(kClass) { + private fun getCompilerArgumentsProperties(kClass: KClass) = kClass.memberProperties.filter { prop -> prop.annotations.any { it is Argument } } - } - private inline fun List>.filterByReturnType(predicate: (KType?) -> Boolean) = + private inline fun Collection>.filterByReturnType(predicate: (KType?) -> Boolean) = filter { predicate(it.returnType) }.mapNotNull { it.safeAs>() } - fun getFlagCompilerArgumentProperties(kClass: KClass): List> = - flagArgumentPropertiesCache.getOrPut(kClass) { getCompilerArguments(kClass).filterByReturnType { it?.classifier == Boolean::class } } + fun getFlagCompilerArgumentProperties(kClass: KClass): Collection> = + flagArgumentPropertiesCache.getOrPut(kClass) { getCompilerArgumentsProperties(kClass).filterByReturnType { it?.classifier == Boolean::class } } - fun getStringCompilerArgumentProperties(kClass: KClass): List> = - stringArgumentPropertiesCache.getOrPut(kClass) { getCompilerArguments(kClass).filterByReturnType { it?.classifier == String::class } } + fun getStringCompilerArgumentProperties(kClass: KClass): Collection> = + stringArgumentPropertiesCache.getOrPut(kClass) { getCompilerArgumentsProperties(kClass).filterByReturnType { it?.classifier == String::class } } - fun getArrayCompilerArgumentProperties(kClass: KClass): List?>> = - arrayArgumentPropertiesCache.getOrPut(kClass) { getCompilerArguments(kClass).filterByReturnType { (it?.classifier as? KClass<*>)?.java?.isArray == true } } + fun getArrayCompilerArgumentProperties(kClass: KClass): Collection?>> = + arrayArgumentPropertiesCache.getOrPut(kClass) { getCompilerArgumentsProperties(kClass).filterByReturnType { (it?.classifier as? KClass<*>)?.java?.isArray == true } } val freeArgsProperty: KProperty1> get() = CommonToolArguments::freeArgs