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