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 =>