From fc31bc3d155dd66f58e63a15e785bfd6768ef5ac Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Tue, 27 Dec 2022 03:43:10 -0500 Subject: [PATCH] Fix aggregation --- main/src/main/scala/sbt/internal/Aggregation.scala | 10 +++++----- main/src/main/scala/sbt/internal/BuildUtil.scala | 2 +- .../core/src/main/B.scala | 4 ++++ .../actions/cross-strict-aggregation-scala-3/test | 5 +++++ 4 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 sbt-app/src/sbt-test/actions/cross-strict-aggregation-scala-3/core/src/main/B.scala diff --git a/main/src/main/scala/sbt/internal/Aggregation.scala b/main/src/main/scala/sbt/internal/Aggregation.scala index 1d68890b4..79ff24bf9 100644 --- a/main/src/main/scala/sbt/internal/Aggregation.scala +++ b/main/src/main/scala/sbt/internal/Aggregation.scala @@ -251,12 +251,12 @@ object Aggregation { proj: Option[Reference], extra: BuildUtil[Proj], reverse: Boolean - ): Seq[ProjectRef] = { + ): Seq[ProjectRef] = val resRef = proj.map(p => extra.projectRefFor(extra.resolveRef(p))) - resRef.toList.flatMap(ref => - if (reverse) extra.aggregates.reverse(ref) else extra.aggregates.forward(ref) - ) - } + resRef.toList.flatMap { ref => + if reverse then extra.aggregates.reverse(ref) + else extra.aggregates.forward(ref) + } def aggregate[T, Proj]( key: ScopedKey[T], diff --git a/main/src/main/scala/sbt/internal/BuildUtil.scala b/main/src/main/scala/sbt/internal/BuildUtil.scala index 946b09a84..ad37c196a 100644 --- a/main/src/main/scala/sbt/internal/BuildUtil.scala +++ b/main/src/main/scala/sbt/internal/BuildUtil.scala @@ -114,7 +114,7 @@ object BuildUtil { val depPairs = for { (uri, unit) <- - units.toIterable // don't lose this toIterable, doing so breaks actions/cross-multiproject & actions/update-state-fail + units.toSeq // don't lose this toSeq, doing so breaks actions/cross-multiproject & actions/update-state-fail project <- unit.projects ref = ProjectRef(uri, project.id) agg <- project.aggregate diff --git a/sbt-app/src/sbt-test/actions/cross-strict-aggregation-scala-3/core/src/main/B.scala b/sbt-app/src/sbt-test/actions/cross-strict-aggregation-scala-3/core/src/main/B.scala new file mode 100644 index 000000000..4f037ec4d --- /dev/null +++ b/sbt-app/src/sbt-test/actions/cross-strict-aggregation-scala-3/core/src/main/B.scala @@ -0,0 +1,4 @@ +package foo + +object B + diff --git a/sbt-app/src/sbt-test/actions/cross-strict-aggregation-scala-3/test b/sbt-app/src/sbt-test/actions/cross-strict-aggregation-scala-3/test index ea7afbf93..d4b96cd58 100644 --- a/sbt-app/src/sbt-test/actions/cross-strict-aggregation-scala-3/test +++ b/sbt-app/src/sbt-test/actions/cross-strict-aggregation-scala-3/test @@ -6,6 +6,11 @@ $ exists core/target/scala-3.0.2 -$ exists subproj/target/scala-3.1.2 > clean +-$ exists core/target/scala-3.0.2 +-$ exists core/target/scala-3.1.2 +-$ exists subproj/target/scala-3.0.2 +-$ exists subproj/target/scala-3.1.2 + > ++3.1.2 compile -$ exists core/target/scala-3.0.2