From 4fd24198d050b5b87457ac45b1fee79ea34b3980 Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Wed, 20 May 2026 17:56:26 -0400 Subject: [PATCH] Use a mutable Set for `alreadySeen`. --- main/src/main/scala/sbt/internal/IncrementalTest.scala | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/main/src/main/scala/sbt/internal/IncrementalTest.scala b/main/src/main/scala/sbt/internal/IncrementalTest.scala index 01d227cd9..0a9faaa7b 100644 --- a/main/src/main/scala/sbt/internal/IncrementalTest.scala +++ b/main/src/main/scala/sbt/internal/IncrementalTest.scala @@ -192,7 +192,7 @@ class ClassStamper private[sbt] ( ): Option[Digest] = val builder = Set.newBuilder[Digest] analyses.foreach: analysis => - internalStamp(builder, javaClassName, analysis, Set.empty, log) + 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*)) @@ -202,7 +202,7 @@ class ClassStamper private[sbt] ( builder: mutable.Builder[Digest, Set[Digest]], javaClassName: String, analysis: Analysis, - alreadySeen: Set[String], + alreadySeen: mutable.Set[String], log: Logger, ): Unit = import analysis.relations @@ -216,7 +216,7 @@ class ClassStamper private[sbt] ( relations .internalClassDeps(className) .foreach: otherCN => - internalStamp(newBuilder, otherCN, analysis, alreadySeen + javaClassName, log) + internalStamp(newBuilder, otherCN, analysis, alreadySeen, log) // log.debug(s" internalStamp: internalDeps: $className = $internalDeps") relations .externalDeps(className) @@ -247,7 +247,8 @@ class ClassStamper private[sbt] ( else stamps.get(javaClassName) match case Some(xs) => builder ++= xs - case _ => + case _ => + alreadySeen += javaClassName // Note: internalClassDeps uses Scala-encoded class name for companion objects val classNames = relations.productClassName.reverse(javaClassName) classNames.foreach(internalStamp0)