Fix deriveAndLocal bug

This commit is contained in:
Dan Sanduleac 2013-11-22 18:25:23 +00:00 committed by Mark Harrah
parent 29db06dcfa
commit d1678e7cac
1 changed files with 4 additions and 3 deletions

View File

@ -342,12 +342,13 @@ trait Init[Scope]
val derivedForKey: List[Derived] = derivedBy.get(sk.key).toList.flatten val derivedForKey: List[Derived] = derivedBy.get(sk.key).toList.flatten
val scope = sk.scope val scope = sk.scope
def localAndDerived(d: Derived): Seq[Setting[_]] = def localAndDerived(d: Derived): Seq[Setting[_]] =
if(d.inScopes.add(scope) && d.setting.filter(scope)) if(!d.inScopes.contains(scope) && d.setting.filter(scope))
{ {
val local = d.dependencies.flatMap(dep => scopeLocal(ScopedKey(scope, dep))) val local = d.dependencies.flatMap(dep => scopeLocal(ScopedKey(scope, dep)))
if(allDepsDefined(d, scope, local.map(_.key.key).toSet)) if(allDepsDefined(d, scope, local.map(_.key.key).toSet)) {
d.inScopes.add(scope)
local :+ d.setting.setScope(scope) local :+ d.setting.setScope(scope)
else } else
Nil Nil
} }
else Nil else Nil