From f4944d80b9d5ca938887e4743ea1c92103d2cd4c Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Mon, 20 Jun 2022 14:07:04 +0200 Subject: [PATCH] [DI] Do not recreate collections in case of empty results ^KT-52756 --- .../src/org/jetbrains/kotlin/container/Singletons.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/compiler/container/src/org/jetbrains/kotlin/container/Singletons.kt b/compiler/container/src/org/jetbrains/kotlin/container/Singletons.kt index 54a4cae892e..ce7476b64c2 100644 --- a/compiler/container/src/org/jetbrains/kotlin/container/Singletons.kt +++ b/compiler/container/src/org/jetbrains/kotlin/container/Singletons.kt @@ -139,7 +139,14 @@ open class SingletonTypeComponentDescriptor(container: ComponentContainer, val k override fun getDependencies(context: ValueResolveContext): Collection { val classInfo = klass.getInfo() - return classInfo.constructorInfo?.parameters.orEmpty() + classInfo.setterInfos.flatMap { it.parameters } + val constructorParameters = classInfo.constructorInfo?.parameters.orEmpty() + val setterInfos = classInfo.setterInfos + + // In most cases, setterInfos is empty (KT-52756) + return if (setterInfos.isEmpty()) + constructorParameters + else + constructorParameters + setterInfos.flatMap { it.parameters } } override fun toString(): String = "Singleton: ${klass.simpleName}"