From 6108808aeb936e7d54931f8105b5588d334be2b4 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Wed, 2 Feb 2011 19:25:18 -0500 Subject: [PATCH] fix Build discovery --- main/Build.scala | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/main/Build.scala b/main/Build.scala index 6cabf2110..86c8563d6 100644 --- a/main/Build.scala +++ b/main/Build.scala @@ -61,7 +61,7 @@ object EvaluateConfigurations { val (importExpressions, settingExpressions) = splitExpressions(name, lines) for((settingExpression,line) <- settingExpressions) yield - evaluateSetting(eval, name, (imports.map(s => (s, -1)) ++ importExpressions), settingExpression, line = line) + evaluateSetting(eval, name, (imports.map(s => (s, -1)) ++ importExpressions), settingExpression, line) } def evaluateSetting(eval: Eval, name: String, imports: Seq[(String,Int)], expression: String, line: Int): Setting[_] = @@ -476,8 +476,11 @@ object Load def findDefinitions(analysis: Analysis): Seq[String] = discover(analysis, "sbt.Build") def discover(analysis: Analysis, subclasses: String*): Seq[String] = { - val discovery = new Discovery(subclasses.toSet, Set.empty) - discovery(Test.allDefs(analysis)).collect { case (definition, Discovered(_,_,_,true)) => definition.name } + val subclassSet = subclasses.toSet + val ds = Discovery(subclassSet, Set.empty)(Test.allDefs(analysis)) + ds.flatMap { case (definition, Discovered(subs,_,_,true)) => + if((subs ** subclassSet).isEmpty) Nil else definition.name :: Nil + } } def initialSession(structure: BuildStructure, rootEval: () => Eval): SessionSettings =