mirror of https://github.com/sbt/sbt.git
Merge pull request #2708 from Duhemm/wip/fix-2707
Fix key selection for build level keys
This commit is contained in:
commit
239549617b
|
|
@ -77,11 +77,16 @@ object Act {
|
|||
selectFromValid(ss filter isValid(data), default)
|
||||
}
|
||||
def selectFromValid(ss: Seq[ParsedKey], default: Parser[ParsedKey])(implicit show: Show[ScopedKey[_]]): Parser[ParsedKey] =
|
||||
selectByTask(selectByConfig(ss)) match {
|
||||
case Seq() => default
|
||||
case Seq(single) => success(single)
|
||||
case multi => failure("Ambiguous keys: " + showAmbiguous(keys(multi)))
|
||||
selectByTask(selectByConfig(ss)) partition isBuildKey match {
|
||||
case (_, Seq(single)) => success(single)
|
||||
case (Seq(single), Seq()) => success(single)
|
||||
case (Seq(), Seq()) => default
|
||||
case (buildKeys, projectKeys) => failure("Ambiguous keys: " + showAmbiguous(keys(buildKeys ++ projectKeys)))
|
||||
}
|
||||
private def isBuildKey(parsed: ParsedKey): Boolean = parsed.key.scope.project match {
|
||||
case Select(_: BuildReference) => true
|
||||
case _ => false
|
||||
}
|
||||
private[this] def keys(ss: Seq[ParsedKey]): Seq[ScopedKey[_]] = ss.map(_.key)
|
||||
def selectByConfig(ss: Seq[ParsedKey]): Seq[ParsedKey] =
|
||||
ss match {
|
||||
|
|
@ -310,4 +315,4 @@ object Act {
|
|||
final object Omitted extends ParsedAxis[Nothing]
|
||||
final class ParsedValue[T](val value: T) extends ParsedAxis[T]
|
||||
def value[T](t: Parser[T]): Parser[ParsedAxis[T]] = t map { v => new ParsedValue(v) }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
[@Duhemm]: https://github.com/Duhemm
|
||||
[#2707]: https://github.com/sbt/sbt/issues/2707
|
||||
[#2708]: https://github.com/sbt/sbt/issues/2708
|
||||
|
||||
### Fixes with compatibility implications
|
||||
|
||||
### Improvements
|
||||
|
||||
### Bug fixes
|
||||
|
||||
- Fix key selection for build level keys. sbt wrongly reported some keys as ambiguous. Fixes [#2707][#2707]. [#2708][#2708] by [@Duhemm][@Duhemm]
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
> baseDirectory
|
||||
|
||||
> {.}/baseDirectory
|
||||
|
||||
Loading…
Reference in New Issue