From 15e0d6af9275382f9ec36137b97807370a2fb9a2 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Sun, 19 May 2019 13:01:36 +0300 Subject: [PATCH] Gradle, js, npm: fix case when resolver visits dependents projects first --- .../jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt index 4efff3f126e..da8404d47fb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmResolver.kt @@ -89,6 +89,7 @@ internal class NpmResolver private constructor(val rootProject: Project) : AutoC private const val KEY = "npmResolverData" operator fun get(project: Project) = project.extensions.findByName(KEY) as ProjectData? operator fun set(project: Project, value: ProjectData) = project.extensions.add(KEY, value) + fun getOrPut(project: Project) = this[project] ?: ProjectData().also { this[project] = it } } } @@ -119,9 +120,7 @@ internal class NpmResolver private constructor(val rootProject: Project) : AutoC } private fun resolve(project: Project): NpmProjects { - val data = ProjectData().also { - ProjectData[project] = it - } + val data = ProjectData.getOrPut(project) project.subprojects.forEach { getOrResolve(it)