[34m# scan=sbt host=unsb-vm-8194-330869 date=2026-03-23T22:12:40Z
Updating files:  35% (1382/3871)
Updating files:  36% (1394/3871)
Updating files:  37% (1433/3871)
Updating files:  38% (1471/3871)
Updating files:  39% (1510/3871)
Updating files:  40% (1549/3871)
Updating files:  41% (1588/3871)
Updating files:  42% (1626/3871)
Updating files:  43% (1665/3871)
Updating files:  44% (1704/3871)
Updating files:  45% (1742/3871)
Updating files:  46% (1781/3871)
Updating files:  47% (1820/3871)
Updating files:  48% (1859/3871)
Updating files:  49% (1897/3871)
Updating files:  50% (1936/3871)
Updating files:  51% (1975/3871)
Updating files:  52% (2013/3871)
Updating files:  53% (2052/3871)
Updating files:  54% (2091/3871)
Updating files:  55% (2130/3871)
Updating files:  56% (2168/3871)
Updating files:  57% (2207/3871)
Updating files:  58% (2246/3871)
Updating files:  59% (2284/3871)
Updating files:  60% (2323/3871)
Updating files:  61% (2362/3871)
Updating files:  62% (2401/3871)
Updating files:  63% (2439/3871)
Updating files:  64% (2478/3871)
Updating files:  65% (2517/3871)
Updating files:  66% (2555/3871)
Updating files:  67% (2594/3871)
Updating files:  68% (2633/3871)
Updating files:  69% (2671/3871)
Updating files:  70% (2710/3871)
Updating files:  71% (2749/3871)
Updating files:  72% (2788/3871)
Updating files:  73% (2826/3871)
Updating files:  74% (2865/3871)
Updating files:  75% (2904/3871)
Updating files:  76% (2942/3871)
Updating files:  77% (2981/3871)
Updating files:  78% (3020/3871)
Updating files:  79% (3059/3871)
Updating files:  80% (3097/3871)
Updating files:  81% (3136/3871)
Updating files:  82% (3175/3871)
Updating files:  83% (3213/3871)
Updating files:  84% (3252/3871)
Updating files:  84% (3255/3871)
Updating files:  85% (3291/3871)
Updating files:  86% (3330/3871)
Updating files:  87% (3368/3871)
Updating files:  88% (3407/3871)
Updating files:  89% (3446/3871)
Updating files:  90% (3484/3871)
Updating files:  91% (3523/3871)
Updating files:  92% (3562/3871)
Updating files:  93% (3601/3871)
Updating files:  94% (3639/3871)
Updating files:  95% (3678/3871)
Updating files:  96% (3717/3871)
Updating files:  97% (3755/3871)
Updating files:  98% (3794/3871)
Updating files:  99% (3833/3871)
Updating files: 100% (3871/3871)
Updating files: 100% (3871/3871), done.
# roots: /tmp/sbt/main/src/main/scala
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/Cross.scala:195\tproject(k).withFilter(projects.contains).flatMap { p =>  [loop: project(k).toSeq.flatMap(crossVersions(extracted, _).map(v => v -> k))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/Cross.scala:196\tif (p == extracted.currentRef || !projects.contains(extracted.currentRef)) {  [loop: project(k).toSeq.flatMap(crossVersions(extracted, _).map(v => v -> k))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/Defaults.scala:412\tinsideCI :== sys.env.contains("BUILD_NUMBER") ||  [loop: .map(java.lang.Boolean.parseBoolean)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/Defaults.scala:2790\tdefined contains ConfigRef(c.name)  [loop: enabledOnly(packagedArtifact.toSettingKey, pkgTasks).apply(_.join.map(_.toMap))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/Defaults.scala:3079\tval useMavenCentral = ars contains Resolver.DefaultMavenRepository  [loop: appConfiguration.map(bootRepositories).value]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/Defaults.scala:3419\tval externalModules = update.value.allModules.filterNot(m => projectDeps contains key(m))  [loop: val projectDeps = projectDependencies.value.iterator.map(key).toSet]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/Defaults.scala:4448\tdef isJansiOrJLine(f: File) = f.getName.contains("jline") || f.getName.contains("jansi")  [loop: .map(_.toPath)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/ProjectExtra.scala:472\treverse.filter(r => derivedDependencies(r).contains(definingKey)).toSet  [loop: .map(c => Def.definedAtString(c.settings).capitalize)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/ProjectExtra.scala:611\tif (acc.exists(map.contains)) {  [loop: } yield ref -> p.dependencies.map(_.project)).toMap]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/Resolvers.scala:260\tif (visited.contains(ref)) go(rest, visited, result)  [loop: val classpathDeps = buildDeps.classpath.getOrElse(ref, Nil).map(_.project)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Act.scala:228\tif data.contains(parsed.key) then true  [loop: private def keys(ss: Seq[ParsedKey]): Seq[ScopedKey[?]] = ss.map(_.key)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Act.scala:236\taggregated.nonEmpty && aggregated.exists(data.contains)  [loop: private def keys(ss: Seq[ParsedKey]): Seq[ScopedKey[?]] = ss.map(_.key)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Act.scala:266\tdef isValid(data: Def.Settings)(parsed: ParsedKey): Boolean = data.contains(parsed.key)  [loop: private def keys(ss: Seq[ParsedKey]): Seq[ScopedKey[?]] = ss.map(_.key)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/BuildStructure.scala:226\tprivate def nonTopLevelPlugin(name: String) = name.contains('.')  [loop: private def autoImports(pluginNames: Seq[String]) = pluginNames.map(_ + ".autoImport")]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Clean.scala:122\tif extracted.structure.data.contains(stampKey) then stampKey :: Nil else Nil  [loop: val targetDir = (scope / target).?.value.map(_.toPath)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/CommandExchange.scala:569\tif (mt.channel.name.contains("console")) shutdown(mt.channel.name)  [loop: Option(currentExecRef.get).foreach(cancel)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Compiler.scala:502\tif !value.contains("$") then value  [loop: else x.split(":").map(_.split(",").map(convertVfRef).mkString(",")).mkString(":")]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Compiler.scala:505\tif !x.contains("$") then x  [loop: else x.split(":").map(_.split(",").map(convertVfRef).mkString(",")).mkString(":")]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Continuous.scala:1310\tstate.get(watchStates).exists(_.contains(channel.name))  [loop: (cmdParser(name) ~> channelParser).map(channel => () => updateState(channel, state))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/IncrementalTest.scala:216\tif alreadySeen.contains(javaClassName) then SortedSet.empty  [loop: .map(stampVf)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/InternalDependencies.scala:26\tcase Array(n, c) if applicableConfigs.contains(n) => Some(c)  [loop: val allConfigs = Classpaths.allConfigs(config).map(_.name).toSet]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/InternalDependencies.scala:27\tcase Array(n) if applicableConfigs.contains(n)    =>  [loop: val allConfigs = Classpaths.allConfigs(config).map(_.name).toSet]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/IvyConsole.scala:84\tcase _ if arg.contains(" at ") => acc.copy(resolvers = parseResolver(arg) +: acc.resolvers)  [loop: args.foldLeft(Dependencies(Nil, Nil, Nil))(parseArgument(log))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/LibraryManagement.scala:253\tval transitiveOnly = report.allModules.filterNot(m => originalKeys contains key(m))  [loop: val originalKeys = dependencies.map(key).toSet]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/LintUnused.scala:139\tval unused: Seq[ScopedKey[?]] = cMap.keys.filter(!used.contains(_)).toSeq  [loop: val used: Set[ScopedKey[?]] = cMap.values.flatMap(_.dependencies).toSet]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/LintUnused.scala:155\tcase pos: FilePosition => pos.path.contains(File.separator)  [loop: val used: Set[ScopedKey[?]] = cMap.values.flatMap(_.dependencies).toSet]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Load.scala:638\tif (builds contains b) loadAll(bs, references, loaders, builds)  [loop: val uris = refs.flatMap(Reference.uri)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Load.scala:949\tif existingIDs.contains(tryID) then BuildDef.defaultID(localBase)  [loop: b.projectDefinitions(base).map(resolveBase(base))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/PluginsDebug.scala:144\tautoPlugins.filter(p => build.projects.forall(!_.autoPlugins.contains(p)))  [loop: autoPlugins.map(_.label).sorted.mkString("    ", s"\n    ", "")]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/PluginsDebug.scala:185\tif (!pluginsThisBuild.contains(plugin)) {  [loop: val availableInBuilds: List[URI] = perBuild.toList.withFilter(_._2(plugin)).map(_._1)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/PomGenerator.scala:235\tval optional = confs.contains(Configurations.Optional.name)  [loop: confStr.split(';').flatMap(_.split("->").head.trim.split(',')).map(_.trim).toSet]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/PomGenerator.scala:238\t.find(c => notOptional.contains(c.name))  [loop: confStr.split(';').flatMap(_.split("->").head.trim.split(',')).map(_.trim).toSet]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/Resolve.scala:58\tkeyIndex.keys(resolvedRef, c.toOption.map(_.name), task) contains key.label  [loop: (Some(r), index.projectFor(r))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/SessionSettings.scala:225\tcase RangePosition(`path`, _) if !keys.contains(s.key) => (s :: in, oth, keys + s.key)  [loop: original.reverse.foldLeft((List[Setting[?]](), List[Setting[?]](), Set.empty[ScopedKey[?]])) {]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/SessionSettings.scala:234\tcase Some(ss @ (ns, newLines)) if !ns.init.dependencies.contains(ns.key) =>  [loop: original.reverse.foldLeft((List[Setting[?]](), List[Setting[?]](), Set.empty[ScopedKey[?]])) {]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/TaskProgress.scala:211\tval newSkip = skip || skipReportTasks.contains(shortName)  [loop: while (name(j) == ' ') j += 1]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/TaskProgress.scala:212\tif (hiddenTasks.contains(shortName)) (tasks, newSkip) else (tasks :+ pair, newSkip)  [loop: while (name(j) == ' ') j += 1]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/WatchTransitiveDependencies.scala:158\t.withFilter(s => s == Scope.Global || s.project.toOption.exists(projects.contains))  [loop: .map(_.scope.copy(task = Zero, extra = Zero))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/graph/backend/SbtUpdateReport.scala:59\tif (existingNodeIds.contains(from)) Seq(edge)  [loop: license = report.licenses.headOption.map(_._1),]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/graph/rendering/TreeView.scala:49\tval cycle = parents.contains(module.id)  [loop: .map(dependency => processSubtree(graph, dependency, parents + module.id))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala:1028\tallScopes.contains(scope)  [loop: val cp = classpath.map(converter.toPath)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/nio/Settings.scala:96\tif (fileOutputScopes.contains(scope)) {  [loop: val init: Def.Initialize[Task[Seq[Path]]] = sk(_.map(_ => Nil))]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala:150\tval isHelp = args.contains(Arg.Help)  [loop: .map(report =>]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala:151\tval isQuiet = args.contains(Arg.Quiet)  [loop: .map(report =>]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala:152\tval isAppend = args.contains(Arg.Append)  [loop: .map(report =>]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala:153\tval isBrowse = args.contains(Arg.Browse)  [loop: .map(report =>]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala:249\tval isHelp = args.contains(Arg.Help)  [loop: graph.nodes.withFilter(m => m.id.organization == org && m.id.name == name).map(_.id)]
CANDIDATE\t/tmp/sbt/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala:250\tval isQuiet = args.contains(Arg.Quiet)  [loop: graph.nodes.withFilter(m => m.id.organization == org && m.id.name == name).map(_.id)]
# roots: /tmp/sbt/tasks/src/main/scala
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:157\tassert(callers(target).contains(node))  [loop: remove(reverse, node).foreach(dep => notifyDone(node, dep))]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:184\tassert(!(reverse.contains(node)))  [loop: remove(reverse, node).foreach(dep => notifyDone(node, dep))]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:185\tassert(!(callers.contains(node)))  [loop: remove(reverse, node).foreach(dep => notifyDone(node, dep))]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:336\tassert(viewCache.contains(node), "Not in view cache: " + node)  [loop: def addedInv(node: TaskId[?]): Unit = topologicalSort(node).foreach(addedCheck)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:344\tdef checkForward = onOpt(forward.get(node))(_.contains(dep))  [loop: def addedInv(node: TaskId[?]): Unit = topologicalSort(node).foreach(addedCheck)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:345\tdef checkReverse = onOpt(reverse.get(dep))(_.exists(_ == node))  [loop: def addedInv(node: TaskId[?]): Unit = topologicalSort(node).foreach(addedCheck)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:355\tassert(!(forward.contains(node)))  [loop: dependencies(n).foldLeft(List.empty)((ss, dep) => visit(dep) ::: ss)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:359\tassert(!(reverse.contains(node)))  [loop: dependencies(n).foldLeft(List.empty)((ss, dep) => visit(dep) ::: ss)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:360\tassert(!(forward.contains(node)))  [loop: dependencies(n).foldLeft(List.empty)((ss, dep) => visit(dep) ::: ss)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:361\tassert(!(callers.contains(node)))  [loop: dependencies(n).foldLeft(List.empty)((ss, dep) => visit(dep) ::: ss)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:362\tassert(!(viewCache.contains(node)))  [loop: dependencies(n).foldLeft(List.empty)((ss, dep) => visit(dep) ::: ss)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:363\tassert(!(results.contains(node)))  [loop: dependencies(n).foldLeft(List.empty)((ss, dep) => visit(dep) ::: ss)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:380\tassert(!(forward.contains(node)))  [loop: dependencies(n).foldLeft(List.empty)((ss, dep) => visit(dep) ::: ss)]
CANDIDATE\t/tmp/sbt/tasks/src/main/scala/sbt/Execute.scala:397\tif all.contains(target) then cyclic(node, target, "Cyclic reference")  [loop: for (caller <- callers) cycleCheck(caller, called)]
# scan complete
[0m