diff --git a/main/src/main/scala/sbt/ScopeFilter.scala b/main/src/main/scala/sbt/ScopeFilter.scala index 3d5edf6ea..d50e9e40b 100644 --- a/main/src/main/scala/sbt/ScopeFilter.scala +++ b/main/src/main/scala/sbt/ScopeFilter.scala @@ -101,7 +101,7 @@ object ScopeFilter { sfilter(data).toSeq.map(s => Project.inScope(s, i)).join val dynamicDeps = i match case k: Def.KeyedInitialize[?] => Seq((k.scopedKey.key, sfilter)) - case _ => Nil + case _ => Nil Def.withDynamicDependencies(inner, dynamicDeps) final class TaskKeyAll[A] private[sbt] (i: Initialize[Task[A]]): @@ -115,7 +115,7 @@ object ScopeFilter { sfilter(data).toSeq.map(s => Project.inScope(s, i)).join(_.join) val dynamicDeps = i match case k: Def.KeyedInitialize[?] => Seq((k.scopedKey.key, sfilter)) - case _ => Nil + case _ => Nil Def.withDynamicDependencies(inner, dynamicDeps) private[sbt] val Make = new Make {} @@ -236,13 +236,18 @@ object ScopeFilter { .groupBy(_.project) .view .mapValues: byProj => - byProj.groupBy(_.config).view.mapValues: byConfig => - byConfig.groupBy(_.task).view.mapValues(_.toSet).toMap - .toMap + byProj + .groupBy(_.config) + .view + .mapValues: byConfig => + byConfig.groupBy(_.task).view.mapValues(_.toSet).toMap + .toMap .toMap new Data(units, resolve, new AllScopes(scopes, grouped)) - def expandDynamicDeps(deps: Seq[Any], structure: BuildStructure): Set[Def.ScopedKey[?]] = + def expandDynamicDeps(deps: Seq[Any], structure: BuildStructure): Set[ + Def.ScopedKey[?] + ] = if deps.isEmpty then Set.empty else val data = dataFromStructure(structure) diff --git a/util-collection/src/main/scala/sbt/internal/util/INode.scala b/util-collection/src/main/scala/sbt/internal/util/INode.scala index 0f9579009..e2a5dfdc7 100644 --- a/util-collection/src/main/scala/sbt/internal/util/INode.scala +++ b/util-collection/src/main/scala/sbt/internal/util/INode.scala @@ -54,6 +54,7 @@ class EvaluateSettings[I <: Init]( o.a match case None => constant(() => o.f(None)) case Some(i) => single[s, A](transform(i), x => o.f(Some(x))) + case d: DynamicDepsInitialize[A] => transform(d.inner) case StaticScopes => strictConstant(allScopes) private lazy val roots: Seq[INode[?]] = compiledSettings.flatMap { cs => diff --git a/util-collection/src/main/scala/sbt/internal/util/Settings.scala b/util-collection/src/main/scala/sbt/internal/util/Settings.scala index 31b9726cb..a596de6c1 100644 --- a/util-collection/src/main/scala/sbt/internal/util/Settings.scala +++ b/util-collection/src/main/scala/sbt/internal/util/Settings.scala @@ -1008,7 +1008,7 @@ trait Init: end Apply private[sbt] final class DynamicDepsInitialize[A1]( - inner: Initialize[A1], + val inner: Initialize[A1], val dynamicDeps: Seq[Any] ) extends Initialize[A1]: override def dependencies: Seq[ScopedKey[?]] = inner.dependencies