From 1f3ce5f9eeca865d905b45ad07684473553a491f Mon Sep 17 00:00:00 2001 From: xuwei-k <6b656e6a69@gmail.com> Date: Thu, 29 Aug 2019 21:37:02 +0900 Subject: [PATCH] use Vector instead of List. avoid O(n) append --- .../src/main/scala/sbt/internal/util/Settings.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/util-collection/src/main/scala/sbt/internal/util/Settings.scala b/internal/util-collection/src/main/scala/sbt/internal/util/Settings.scala index 44e935324..e570bc160 100644 --- a/internal/util-collection/src/main/scala/sbt/internal/util/Settings.scala +++ b/internal/util-collection/src/main/scala/sbt/internal/util/Settings.scala @@ -228,10 +228,10 @@ trait Init[ScopeType] { ((IMap.empty: ScopedMap) /: init)((m, s) => add(m, s)) def add[T](m: ScopedMap, s: Setting[T]): ScopedMap = - m.mapValue[T](s.key, Nil, ss => append(ss, s)) + m.mapValue[T](s.key, Vector.empty[Setting[T]], ss => append(ss, s)) def append[T](ss: Seq[Setting[T]], s: Setting[T]): Seq[Setting[T]] = - if (s.definitive) s :: Nil else ss :+ s + if (s.definitive) Vector(s) else ss :+ s def addLocal(init: Seq[Setting[_]])(implicit scopeLocal: ScopeLocal): Seq[Setting[_]] = init.par.map(_.dependencies flatMap scopeLocal).toVector.flatten ++ init