From ee192ead15d5f746fa73665418beaee222a9deae Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Fri, 22 May 2026 10:20:16 -0400 Subject: [PATCH] Integrate changes from https://github.com/sbt/sbt/pull/9257. --- .../scala/sbt/internal/IncrementalTest.scala | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/main/src/main/scala/sbt/internal/IncrementalTest.scala b/main/src/main/scala/sbt/internal/IncrementalTest.scala index 0a9faaa7b..81462fab0 100644 --- a/main/src/main/scala/sbt/internal/IncrementalTest.scala +++ b/main/src/main/scala/sbt/internal/IncrementalTest.scala @@ -190,14 +190,20 @@ class ClassStamper private[sbt] ( extraHashes: Seq[Digest], log: Logger, ): Option[Digest] = - val builder = Set.newBuilder[Digest] - analyses.foreach: analysis => - internalStamp(builder, javaClassName, analysis, mutable.Set.empty, log) - val digests = builder.result().toSeq.sorted - // log.debug(s"test: transitiveStamp($javaClassName, $extraHashes) = $digests") - if digests.nonEmpty then Some(Digest.sha256Hash(digests ++ extraHashes*)) + val digests = transitiveStamps(javaClassName, extraHashes, log) + if digests.nonEmpty then Some(Digest.sha256Hash(digests*)) else None + private def transitiveStamps( + javaClassName: String, + extraHashes: Seq[Digest], + log: Logger, + ): Seq[Digest] = + val builder = Set.newBuilder[Digest] + analyses.foreach(internalStamp(builder, javaClassName, _, mutable.Set.empty, log)) + val digests = builder.result().toSeq.sorted + digests ++ extraHashes + private def internalStamp( builder: mutable.Builder[Digest, Set[Digest]], javaClassName: String, @@ -221,7 +227,7 @@ class ClassStamper private[sbt] ( relations .externalDeps(className) .foreach: libClassName => - newBuilder ++= transitiveStamp(libClassName, Nil, log) + newBuilder ++= transitiveStamps(libClassName, Nil, log) relations .externalDeps(className) .foreach: libClassName =>