Undone the revert on the optimization, and fixed setAll()

The optimization, and therefore the change in the behavior
of Relation, is now needed by the class Logic, and cannot
be reverted.

This patch (written by Josh) therefore changes the
implementation of setAll() so that _1s is no longer used.
This commit is contained in:
Antonio Cunei 2014-09-12 20:51:04 +02:00
parent 9aa0985f4b
commit 9b94a16b73
2 changed files with 3 additions and 3 deletions

View File

@ -27,7 +27,7 @@ private[sbt] object SettingCompletions {
{
import extracted._
val r = relation(extracted.structure, true)
val allDefs = r._1s.toSeq
val allDefs = Def.flattenLocals(Def.compiled(extracted.structure.settings, true)(structure.delegates, structure.scopeLocal, implicitly[Show[ScopedKey[_]]])).map(_._1)
val projectScope = Load.projectScope(currentRef)
def resolve(s: Setting[_]): Seq[Setting[_]] = Load.transformSettings(projectScope, currentRef.build, rootProject, s :: Nil)
def rescope[T](setting: Setting[T]): Seq[Setting[_]] =
@ -353,4 +353,4 @@ private[sbt] object SettingCompletions {
classOf[Long],
classOf[String]
)
}
}

View File

@ -129,7 +129,7 @@ private final class MRelation[A, B](fwd: Map[A, Set[B]], rev: Map[B, Set[A]]) ex
def +(pair: (A, B)) = this + (pair._1, Set(pair._2))
def +(from: A, to: B) = this + (from, to :: Nil)
def +(from: A, to: Traversable[B]) =
def +(from: A, to: Traversable[B]) = if (to.isEmpty) this else
new MRelation(add(fwd, from, to), (rev /: to) { (map, t) => add(map, t, from :: Nil) })
def ++(rs: Traversable[(A, B)]) = ((this: Relation[A, B]) /: rs) { _ + _ }