Merge pull request #2303 from jrudolph/w/2302-disable-pre-and-post-checks

Fixes #2302. Don't check pre and post conditions in sbt.Execute by default
This commit is contained in:
eugene yokota 2015-12-14 17:06:13 -05:00
commit 98fbb4381f
1 changed files with 4 additions and 4 deletions

View File

@ -21,6 +21,8 @@ private[sbt] object Execute {
def config(checkCycles: Boolean, overwriteNode: Incomplete => Boolean = const(false)): Config = new Config(checkCycles, overwriteNode) def config(checkCycles: Boolean, overwriteNode: Incomplete => Boolean = const(false)): Config = new Config(checkCycles, overwriteNode)
final class Config private[sbt] (val checkCycles: Boolean, val overwriteNode: Incomplete => Boolean) final class Config private[sbt] (val checkCycles: Boolean, val overwriteNode: Incomplete => Boolean)
final val checkPreAndPostConditions = sys.props.get("sbt.execute.extrachecks").exists(java.lang.Boolean.parseBoolean)
} }
sealed trait Completed { sealed trait Completed {
def process(): Unit def process(): Unit
@ -341,8 +343,6 @@ private[sbt] final class Execute[A[_] <: AnyRef](config: Config, triggers: Trigg
def added(d: A[_]) = state contains d def added(d: A[_]) = state contains d
def complete = state.values.forall(_ == Done) def complete = state.values.forall(_ == Done)
import scala.annotation.elidable def pre(f: => Unit) = if (checkPreAndPostConditions) f
import elidable._ def post(f: => Unit) = if (checkPreAndPostConditions) f
@elidable(ASSERTION) def pre(f: => Unit) = f
@elidable(ASSERTION) def post(f: => Unit) = f
} }