diff options
author | Guillaume Martres <smarter@ubuntu.com> | 2017-02-16 23:35:18 +0100 |
---|---|---|
committer | Guillaume Martres <smarter@ubuntu.com> | 2017-02-18 19:24:05 +0100 |
commit | 5aac086d63807331e380bb2d861e4e07800b1f63 (patch) | |
tree | 0846ffcc133ce47ba1355e960959295d1e6f1bc2 /tests/disabled/scalac-dependent/pos/t5604/ReplConfig.scala | |
parent | 6df672c7e7be65d7be1cd6524c610aed4f35178c (diff) | |
download | dotty-5aac086d63807331e380bb2d861e4e07800b1f63.tar.gz dotty-5aac086d63807331e380bb2d861e4e07800b1f63.tar.bz2 dotty-5aac086d63807331e380bb2d861e4e07800b1f63.zip |
Disable tests that require scala-compiler
This is necessary if we ever want to get rid of our dependency on scala-compiler
Diffstat (limited to 'tests/disabled/scalac-dependent/pos/t5604/ReplConfig.scala')
-rw-r--r-- | tests/disabled/scalac-dependent/pos/t5604/ReplConfig.scala | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/disabled/scalac-dependent/pos/t5604/ReplConfig.scala b/tests/disabled/scalac-dependent/pos/t5604/ReplConfig.scala new file mode 100644 index 000000000..8c589eba6 --- /dev/null +++ b/tests/disabled/scalac-dependent/pos/t5604/ReplConfig.scala @@ -0,0 +1,53 @@ +/* NSC -- new Scala compiler + * Copyright 2005-2011 LAMP/EPFL + * @author Paul Phillips + */ + +package scala.tools.nsc +package interpreter + +import util.Exceptional.unwrap +import util.stackTraceString + +trait ReplConfig { + lazy val replProps = new ReplProps + + class TapMaker[T](x: T) { + def tapInfo(msg: => String): T = tap(x => replinfo(parens(x))) + def tapDebug(msg: => String): T = tap(x => repldbg(parens(x))) + def tapTrace(msg: => String): T = tap(x => repltrace(parens(x))) + def tap[U](f: T => U): T = { + f(x) + x + } + } + + private def parens(x: Any) = "(" + x + ")" + private def echo(msg: => String) = + try Console println msg + catch { case x: AssertionError => Console.println("Assertion error printing debugging output: " + x) } + + private[nsc] def repldbg(msg: => String) = if (isReplDebug) echo(msg) + private[nsc] def repltrace(msg: => String) = if (isReplTrace) echo(msg) + private[nsc] def replinfo(msg: => String) = if (isReplInfo) echo(msg) + + private[nsc] def logAndDiscard[T](label: String, alt: => T): PartialFunction[Throwable, T] = { + case t => + repldbg(label + ": " + unwrap(t)) + repltrace(stackTraceString(unwrap(t))) + alt + } + private[nsc] def substituteAndLog[T](alt: => T)(body: => T): T = + substituteAndLog("" + alt, alt)(body) + private[nsc] def substituteAndLog[T](label: String, alt: => T)(body: => T): T = { + try body + catch logAndDiscard(label, alt) + } + private[nsc] def squashAndLog(label: String)(body: => Unit): Unit = + substituteAndLog(label, ())(body) + + def isReplTrace: Boolean = replProps.trace + def isReplDebug: Boolean = replProps.debug || isReplTrace + def isReplInfo: Boolean = replProps.info || isReplDebug + def isReplPower: Boolean = replProps.power +} |