From be8b63cb3828b4caace828868ee4bd1aa21a4ddf Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Wed, 8 Sep 2010 14:32:28 -0400 Subject: [PATCH] fix implied transformation loop 'implied' state was not reset on transformed Task, so it was processed again (and again...) --- tasks/standard/System.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tasks/standard/System.scala b/tasks/standard/System.scala index 775d3694e..d07af40ff 100644 --- a/tasks/standard/System.scala +++ b/tasks/standard/System.scala @@ -37,7 +37,12 @@ object System def impliedDeps(t: Task[_]): Seq[Task[_]] = for( n <- t.info.name.toList; o <- owner(t.original).toList; agg <- subs(o); implied <- static(agg, n) ) yield implied - def withImplied[T](in: Task[T]): Task[T] = Task(Info(), DependsOn(in, impliedDeps(in))) + def withImplied[T](in: Task[T]): Task[T] = + { + val deps = impliedDeps(in) + import TaskExtra._ + if( deps.isEmpty ) in else Task(Info(), DependsOn(in.local, deps)) + } def apply[T](in: Task[T]): Task[T] = if(in.info.implied) withImplied(in) else in }