Cleanup Resolve

This commit is contained in:
Dale Wijnand 2018-03-26 22:37:38 +01:00
parent ebe5540226
commit a0e27c719c
No known key found for this signature in database
GPG Key ID: 4F256E3D151DF5EF
1 changed files with 12 additions and 13 deletions

View File

@ -15,19 +15,19 @@ object Resolve {
index: BuildUtil[_], index: BuildUtil[_],
current: ScopeAxis[Reference], current: ScopeAxis[Reference],
key: AttributeKey[_], key: AttributeKey[_],
mask: ScopeMask mask: ScopeMask,
): Scope => Scope = { ): Scope => Scope = {
val rs = val rs = (
resolveProject(current, mask) _ :: resolveProject(current, mask) _
resolveExtra(mask) _ :: :: resolveExtra(mask) _
resolveTask(mask) _ :: :: resolveTask(mask) _
resolveConfig(index, key, mask) _ :: :: resolveConfig(index, key, mask) _
Nil :: Nil
)
scope => scope =>
(scope /: rs) { (s, f) => rs.foldLeft(scope)((s, f) => f(s))
f(s)
}
} }
def resolveTask(mask: ScopeMask)(scope: Scope): Scope = def resolveTask(mask: ScopeMask)(scope: Scope): Scope =
if (mask.task) scope if (mask.task) scope
else scope.copy(task = Zero) else scope.copy(task = Zero)
@ -41,17 +41,16 @@ object Resolve {
else scope.copy(extra = Zero) else scope.copy(extra = Zero)
def resolveConfig[P](index: BuildUtil[P], key: AttributeKey[_], mask: ScopeMask)( def resolveConfig[P](index: BuildUtil[P], key: AttributeKey[_], mask: ScopeMask)(
scope: Scope scope: Scope,
): Scope = ): Scope =
if (mask.config) if (mask.config)
scope scope
else { else {
val (resolvedRef, proj) = scope.project match { val (resolvedRef, proj) = scope.project match {
case Zero | This => (None, index.rootProject(index.root))
case Select(ref) => case Select(ref) =>
val r = index resolveRef ref val r = index resolveRef ref
(Some(r), index.projectFor(r)) (Some(r), index.projectFor(r))
case Zero | This =>
(None, index.rootProject(index.root))
} }
val task = scope.task.toOption val task = scope.task.toOption
val keyIndex = index.keyIndex val keyIndex = index.keyIndex