From 4a8e7c07345e3d4c550aa5784a5d75a056285c7e Mon Sep 17 00:00:00 2001 From: Ethan Atkins Date: Fri, 3 Jul 2020 11:55:52 -0700 Subject: [PATCH] Used cached compiled map in LintUnused Linting unused keys was adding a significant overhead to sbt project loading because Def.compiled is so slow. It was around 4 seconds in the sbt project on my computer. --- main/src/main/scala/sbt/internal/LintUnused.scala | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/main/src/main/scala/sbt/internal/LintUnused.scala b/main/src/main/scala/sbt/internal/LintUnused.scala index bb549918e..57485ae67 100644 --- a/main/src/main/scala/sbt/internal/LintUnused.scala +++ b/main/src/main/scala/sbt/internal/LintUnused.scala @@ -117,9 +117,7 @@ object LintUnused { val extracted = Project.extract(state) val structure = extracted.structure val display = Def.showShortKey(None) // extracted.showKey - val actual = true - val comp = - Def.compiled(structure.settings, actual)(structure.delegates, structure.scopeLocal, display) + val comp = structure.compiledMap val cMap = Def.flattenLocals(comp) val used: Set[ScopedKey[_]] = cMap.values.flatMap(_.dependencies).toSet val unused: Seq[ScopedKey[_]] = cMap.keys.filter(!used.contains(_)).toSeq