From 6c032b8283e5fc3d88256be10a0a8b1e851800c0 Mon Sep 17 00:00:00 2001 From: xuwei-k <6b656e6a69@gmail.com> Date: Sun, 25 Jun 2023 08:53:49 +0900 Subject: [PATCH] some trivial refactoring - remove unused type params - use `withFilter` if possible - use `collectFirst` instead of `collect` and `headOption` - use `length` instead of `size` if `Array` or `String` - use `foreach` instead of `map` --- .../src/test/scala/sbt/complete/FileExamplesTest.scala | 6 +++--- .../src/main/scala/sbt/internal/util/StackTrace.scala | 2 +- main-actions/src/main/scala/sbt/Package.scala | 2 +- main-actions/src/main/scala/sbt/Sync.scala | 2 +- main-actions/src/main/scala/sbt/TestResultLogger.scala | 2 +- .../scala/sbt/internal/util/ReadJsonFromInputStream.scala | 2 +- main/src/main/scala/sbt/Cross.scala | 2 +- main/src/main/scala/sbt/Defaults.scala | 2 +- main/src/main/scala/sbt/Extracted.scala | 2 +- main/src/main/scala/sbt/Main.scala | 2 +- main/src/main/scala/sbt/ScopeFilter.scala | 4 ++-- .../main/scala/sbt/coursierint/CoursierArtifactsTasks.scala | 3 ++- main/src/main/scala/sbt/internal/Clean.scala | 2 +- main/src/main/scala/sbt/internal/CommandExchange.scala | 2 +- main/src/main/scala/sbt/internal/Load.scala | 2 +- main/src/main/scala/sbt/internal/PluginsDebug.scala | 2 +- main/src/main/scala/sbt/internal/graph/rendering/DOT.scala | 2 +- .../scala/sbt/internal/graph/rendering/Statistics.scala | 2 +- main/src/main/scala/sbt/internal/parser/SbtParser.scala | 2 +- .../src/main/scala/sbt/plugins/DependencyTreeSettings.scala | 2 +- tasks-standard/src/main/scala/sbt/std/TaskExtra.scala | 2 +- 21 files changed, 25 insertions(+), 24 deletions(-) diff --git a/internal/util-complete/src/test/scala/sbt/complete/FileExamplesTest.scala b/internal/util-complete/src/test/scala/sbt/complete/FileExamplesTest.scala index c32269bde..c946f2405 100644 --- a/internal/util-complete/src/test/scala/sbt/complete/FileExamplesTest.scala +++ b/internal/util-complete/src/test/scala/sbt/complete/FileExamplesTest.scala @@ -83,7 +83,7 @@ class FileExamplesTest extends UnitSpec { def prefixedPathsOnly: List[String] = allRelativizedPaths - .filter(_ startsWith withCompletionPrefix) + .withFilter(_ startsWith withCompletionPrefix) .map(_ substring withCompletionPrefix.length) def createSampleDirStructure(tempDir: File): Unit = { @@ -92,8 +92,8 @@ class FileExamplesTest extends UnitSpec { nestedFiles = toChildFiles(childDirectories(1), List("farfile1", "barfile2")) nestedDirectories = toChildFiles(childDirectories(1), List("fardir1", "bardir2")) - (childDirectories ++ nestedDirectories).map(_.mkdirs()) - (childFiles ++ nestedFiles).map(_.createNewFile()) + (childDirectories ++ nestedDirectories).foreach(_.mkdirs()) + (childFiles ++ nestedFiles).foreach(_.createNewFile()) baseDir = tempDir } diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/StackTrace.scala b/internal/util-logging/src/main/scala/sbt/internal/util/StackTrace.scala index 1e0940efb..d47ca4678 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/StackTrace.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/StackTrace.scala @@ -53,7 +53,7 @@ object StackTrace { val els = t.getStackTrace() var i = 0 - while ((i < els.size) && include(els(i))) { + while ((i < els.length) && include(els(i))) { appendElement(els(i)) i += 1 } diff --git a/main-actions/src/main/scala/sbt/Package.scala b/main-actions/src/main/scala/sbt/Package.scala index a3b944b79..fbff588a0 100644 --- a/main-actions/src/main/scala/sbt/Package.scala +++ b/main-actions/src/main/scala/sbt/Package.scala @@ -76,7 +76,7 @@ object Package { .orElse(Some(default2010Timestamp)) def timeFromConfiguration(config: Configuration): Option[Long] = - (config.options.collect { case t: FixedTimestamp => t }).headOption match { + config.options.collectFirst { case t: FixedTimestamp => t } match { case Some(FixedTimestamp(value)) => value case _ => defaultTimestamp } diff --git a/main-actions/src/main/scala/sbt/Sync.scala b/main-actions/src/main/scala/sbt/Sync.scala index c1e180227..516efc3b6 100644 --- a/main-actions/src/main/scala/sbt/Sync.scala +++ b/main-actions/src/main/scala/sbt/Sync.scala @@ -97,7 +97,7 @@ object Sync { def noDuplicateTargets(relation: Relation[File, File]): Unit = { val dups = relation.reverseMap - .filter { case (_, srcs) => srcs.size >= 2 && srcs.exists(!_.isDirectory) } + .withFilter { case (_, srcs) => srcs.size >= 2 && srcs.exists(!_.isDirectory) } .map { case (target, srcs) => "\n\t" + target + "\nfrom\n\t" + srcs.mkString("\n\t\t") } if (dups.nonEmpty) sys.error("Duplicate mappings:" + dups.mkString) diff --git a/main-actions/src/main/scala/sbt/TestResultLogger.scala b/main-actions/src/main/scala/sbt/TestResultLogger.scala index b018c203a..c824ab790 100644 --- a/main-actions/src/main/scala/sbt/TestResultLogger.scala +++ b/main-actions/src/main/scala/sbt/TestResultLogger.scala @@ -164,7 +164,7 @@ object TestResultLogger { "Canceled" -> canceledCount, "Pending" -> pendingCount ) - val extra = otherCounts.filter(_._2 > 0).map { case (label, count) => s", $label $count" } + val extra = otherCounts.withFilter(_._2 > 0).map { case (label, count) => s", $label $count" } val postfix = base + extra.mkString results.overall match { diff --git a/main-command/src/main/scala/sbt/internal/util/ReadJsonFromInputStream.scala b/main-command/src/main/scala/sbt/internal/util/ReadJsonFromInputStream.scala index 11b7e07cf..12c8f0122 100644 --- a/main-command/src/main/scala/sbt/internal/util/ReadJsonFromInputStream.scala +++ b/main-command/src/main/scala/sbt/internal/util/ReadJsonFromInputStream.scala @@ -33,7 +33,7 @@ private[sbt] object ReadJsonFromInputStream { */ var headerBuffer = new Array[Byte](128) def expandHeaderBuffer(): Unit = { - val newHeaderBuffer = new Array[Byte](headerBuffer.size * 2) + val newHeaderBuffer = new Array[Byte](headerBuffer.length * 2) headerBuffer.view.zipWithIndex.foreach { case (b, i) => newHeaderBuffer(i) = b } headerBuffer = newHeaderBuffer } diff --git a/main/src/main/scala/sbt/Cross.scala b/main/src/main/scala/sbt/Cross.scala index 64ff77293..8ab221140 100644 --- a/main/src/main/scala/sbt/Cross.scala +++ b/main/src/main/scala/sbt/Cross.scala @@ -185,7 +185,7 @@ object Cross { case (v, keys) => val projects = keys.flatMap(project) keys.toSeq.flatMap { k => - project(k).filter(projects.contains).flatMap { p => + project(k).withFilter(projects.contains).flatMap { p => if (p == extracted.currentRef || !projects.contains(extracted.currentRef)) { val parts = project(k).map(_.project) ++ k.scope.config.toOption.map { case ConfigKey(n) => n.head.toUpper + n.tail diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 6d0da9315..9c729be03 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -4204,7 +4204,7 @@ object Classpaths { if (module.organization == scalaOrg) { val jarName = module.name + ".jar" val replaceWith = scalaJars(module.revision).toVector - .filter(_.getName == jarName) + .withFilter(_.getName == jarName) .map(f => (Artifact(f.getName.stripSuffix(".jar")), f)) if (replaceWith.isEmpty) arts else replaceWith } else diff --git a/main/src/main/scala/sbt/Extracted.scala b/main/src/main/scala/sbt/Extracted.scala index 2b4992dac..0a3662816 100644 --- a/main/src/main/scala/sbt/Extracted.scala +++ b/main/src/main/scala/sbt/Extracted.scala @@ -46,7 +46,7 @@ final case class Extracted( structure.data.get(inCurrent(key.scope), key.key) @nowarn - private[this] def inCurrent[T](scope: Scope): Scope = + private[this] def inCurrent(scope: Scope): Scope = if (scope.project == This) scope in currentRef else scope /** diff --git a/main/src/main/scala/sbt/Main.scala b/main/src/main/scala/sbt/Main.scala index 49d9700f4..48d24b3e5 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -478,7 +478,7 @@ object BuiltinCommands { )(s: State): Parser[(Int, Option[String])] = verbosityParser ~ selectedParser(s, keepKeys).? def selectedParser(s: State, keepKeys: AttributeKey[_] => Boolean): Parser[String] = - singleArgument(allTaskAndSettingKeys(s).filter(keepKeys).map(_.label).toSet) + singleArgument(allTaskAndSettingKeys(s).withFilter(keepKeys).map(_.label).toSet) def verbosityParser: Parser[Int] = success(1) | ((Space ~ "-") ~> ( 'v'.id.+.map(_.size + 1) | diff --git a/main/src/main/scala/sbt/ScopeFilter.scala b/main/src/main/scala/sbt/ScopeFilter.scala index fe0cbff51..1811aa921 100644 --- a/main/src/main/scala/sbt/ScopeFilter.scala +++ b/main/src/main/scala/sbt/ScopeFilter.scala @@ -72,7 +72,7 @@ object ScopeFilter { * static inspections will not show them. */ def all(sfilter: => ScopeFilter): Initialize[Seq[T]] = Def.bind(getData) { data => - data.allScopes.toSeq.filter(sfilter(data)).map(s => Project.inScope(s, i)).join + data.allScopes.toSeq.withFilter(sfilter(data)).map(s => Project.inScope(s, i)).join } } final class TaskKeyAll[T] private[sbt] (i: Initialize[Task[T]]) { @@ -83,7 +83,7 @@ object ScopeFilter { */ def all(sfilter: => ScopeFilter): Initialize[Task[Seq[T]]] = Def.bind(getData) { data => import std.TaskExtra._ - data.allScopes.toSeq.filter(sfilter(data)).map(s => Project.inScope(s, i)).join(_.join) + data.allScopes.toSeq.withFilter(sfilter(data)).map(s => Project.inScope(s, i)).join(_.join) } } diff --git a/main/src/main/scala/sbt/coursierint/CoursierArtifactsTasks.scala b/main/src/main/scala/sbt/coursierint/CoursierArtifactsTasks.scala index c249f4e05..880ee2b7e 100644 --- a/main/src/main/scala/sbt/coursierint/CoursierArtifactsTasks.scala +++ b/main/src/main/scala/sbt/coursierint/CoursierArtifactsTasks.scala @@ -126,7 +126,8 @@ object CoursierArtifactsTasks { // it puts it in all of them. See for example what happens to // the standalone JAR artifact of the coursier cli module. def allConfigsIfEmpty(configs: Iterable[ConfigRef]): Iterable[ConfigRef] = - if (configs.isEmpty) ivyConfs.filter(_.isPublic).map(c => ConfigRef(c.name)) else configs + if (configs.isEmpty) ivyConfs.withFilter(_.isPublic).map(c => ConfigRef(c.name)) + else configs val extraSbtArtifactsPublication = for { artifact <- extraSbtArtifacts diff --git a/main/src/main/scala/sbt/internal/Clean.scala b/main/src/main/scala/sbt/internal/Clean.scala index 30776d3e8..93a7ac78f 100644 --- a/main/src/main/scala/sbt/internal/Clean.scala +++ b/main/src/main/scala/sbt/internal/Clean.scala @@ -93,7 +93,7 @@ private[sbt] object Clean { val delete = cleanDelete(scope).value val targetDir = (scope / target).?.value.map(_.toPath) - targetDir.filter(_ => full).foreach(deleteContents(_, excludeFilter, view, delete)) + targetDir.withFilter(_ => full).foreach(deleteContents(_, excludeFilter, view, delete)) (scope / cleanFiles).?.value.getOrElse(Nil).foreach { x => if (x.isDirectory) deleteContents(x.toPath, excludeFilter, view, delete) else delete(x.toPath) diff --git a/main/src/main/scala/sbt/internal/CommandExchange.scala b/main/src/main/scala/sbt/internal/CommandExchange.scala index 870bbe6c2..876532663 100644 --- a/main/src/main/scala/sbt/internal/CommandExchange.scala +++ b/main/src/main/scala/sbt/internal/CommandExchange.scala @@ -162,7 +162,7 @@ private[sbt] final class CommandExchange { commandQueue.removeIf { e => e.source.map(_.channelName) == Some(c.name) && e.commandLine != Shutdown } - currentExec.filter(_.source.map(_.channelName) == Some(c.name)).foreach { e => + currentExec.withFilter(_.source.map(_.channelName) == Some(c.name)).foreach { e => Util.ignoreResult(NetworkChannel.cancel(e.execId, e.execId.getOrElse("0"), force = false)) } try commandQueue.put(Exec(s"${ContinuousCommands.stopWatch} ${c.name}", None)) diff --git a/main/src/main/scala/sbt/internal/Load.scala b/main/src/main/scala/sbt/internal/Load.scala index 6b566d2c4..3a3da3810 100755 --- a/main/src/main/scala/sbt/internal/Load.scala +++ b/main/src/main/scala/sbt/internal/Load.scala @@ -1049,7 +1049,7 @@ private[sbt] object Load { // Filter the AutoPlugin settings we included based on which ones are // intended in the AddSettings.AutoPlugins filter. def autoPluginSettings(f: AutoPlugins) = - projectPlugins.filter(f.include).flatMap(_.projectSettings) + projectPlugins.withFilter(f.include).flatMap(_.projectSettings) // Grab all the settings we already loaded from sbt files def settings(files: Seq[File]): Seq[Setting[_]] = { if (files.nonEmpty) diff --git a/main/src/main/scala/sbt/internal/PluginsDebug.scala b/main/src/main/scala/sbt/internal/PluginsDebug.scala index e039a7d01..fffba1622 100644 --- a/main/src/main/scala/sbt/internal/PluginsDebug.scala +++ b/main/src/main/scala/sbt/internal/PluginsDebug.scala @@ -184,7 +184,7 @@ private[sbt] object PluginsDebug { ) lazy val debug = PluginsDebug(context.available) if (!pluginsThisBuild.contains(plugin)) { - val availableInBuilds: List[URI] = perBuild.toList.filter(_._2(plugin)).map(_._1) + val availableInBuilds: List[URI] = perBuild.toList.withFilter(_._2(plugin)).map(_._1) val s1 = s"Plugin ${plugin.label} is only available in builds:" val s2 = availableInBuilds.mkString("\n\t") val s3 = diff --git a/main/src/main/scala/sbt/internal/graph/rendering/DOT.scala b/main/src/main/scala/sbt/internal/graph/rendering/DOT.scala index 172bc6bcd..3a3db79c8 100644 --- a/main/src/main/scala/sbt/internal/graph/rendering/DOT.scala +++ b/main/src/main/scala/sbt/internal/graph/rendering/DOT.scala @@ -53,7 +53,7 @@ object DOT { // add extra edges from evicted to evicted-by module val evictedByEdges: Seq[Edge] = graph.nodes - .filter(_.isEvicted) + .withFilter(_.isEvicted) .map(m => Edge(m.id, m.id.copy(version = m.evictedByVersion.get))) // remove edges to new evicted-by module which is now replaced by a chain diff --git a/main/src/main/scala/sbt/internal/graph/rendering/Statistics.scala b/main/src/main/scala/sbt/internal/graph/rendering/Statistics.scala index 7b24dd30e..e569b916d 100644 --- a/main/src/main/scala/sbt/internal/graph/rendering/Statistics.scala +++ b/main/src/main/scala/sbt/internal/graph/rendering/Statistics.scala @@ -29,7 +29,7 @@ object Statistics { val directDependencies = graph.dependencyMap(moduleId).filterNot(_.isEvicted).map(_.id) val dependencyStats = directDependencies.map(statsFor).flatMap(_.transitiveStatsWithSelf).toMap - val selfSize = graph.module(moduleId).flatMap(_.jarFile).filter(_.exists).map(_.length) + val selfSize = graph.module(moduleId).flatMap(_.jarFile).withFilter(_.exists).map(_.length) val numDirectDependencies = directDependencies.size val numTransitiveDependencies = dependencyStats.size val transitiveSize = selfSize.getOrElse(0L) + dependencyStats diff --git a/main/src/main/scala/sbt/internal/parser/SbtParser.scala b/main/src/main/scala/sbt/internal/parser/SbtParser.scala index c755bc411..eb7bed7cb 100644 --- a/main/src/main/scala/sbt/internal/parser/SbtParser.scala +++ b/main/src/main/scala/sbt/internal/parser/SbtParser.scala @@ -257,7 +257,7 @@ private[sbt] case class SbtParser(file: File, lines: Seq[String]) extends Parsed !(c contains "=") case _ => false } - parsedTrees.filter(isBadValDef).foreach { badTree => + parsedTrees.withFilter(isBadValDef).foreach { badTree => // Issue errors val positionLine = badTree.pos.line throw new MessageOnlyException( diff --git a/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala b/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala index 69f6aa1aa..01e72e9ef 100644 --- a/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala +++ b/main/src/main/scala/sbt/plugins/DependencyTreeSettings.scala @@ -137,7 +137,7 @@ object DependencyTreeSettings { versionFilter match { case Some(version) => GraphModuleId(org, name, version) :: Nil case None => - graph.nodes.filter(m => m.id.organization == org && m.id.name == name).map(_.id) + graph.nodes.withFilter(m => m.id.organization == org && m.id.name == name).map(_.id) } val graphWidth = asciiGraphWidth.value val output = diff --git a/tasks-standard/src/main/scala/sbt/std/TaskExtra.scala b/tasks-standard/src/main/scala/sbt/std/TaskExtra.scala index 7bbb2edba..39a03e653 100644 --- a/tasks-standard/src/main/scala/sbt/std/TaskExtra.scala +++ b/tasks-standard/src/main/scala/sbt/std/TaskExtra.scala @@ -239,7 +239,7 @@ trait TaskExtra extends TaskExtra0 { def lines: Task[List[String]] = lines0(None) def lines(sid: String): Task[List[String]] = lines0(Some(sid)) - private def lines0[T](sid: Option[String]): Task[List[String]] = + private def lines0(sid: Option[String]): Task[List[String]] = streams map { s => IO.readLines(s.readText(key(in), sid)) }