summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/SymbolTable.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-08-20 08:44:03 -0700
committerPaul Phillips <paulp@improving.org>2013-08-20 08:44:03 -0700
commit01f771e687291803da1983bdac97d9288c069bfe (patch)
tree5c0e664803a9682bb25c6b48658d0660d9727a02 /src/reflect/scala/reflect/internal/SymbolTable.scala
parent6d4e71c111226591a4eeb5b77efac689ef1dd79a (diff)
parent1df7b32a15bac0c57d4371b6e081f06d9e145aaf (diff)
downloadscala-01f771e687291803da1983bdac97d9288c069bfe.tar.gz
scala-01f771e687291803da1983bdac97d9288c069bfe.tar.bz2
scala-01f771e687291803da1983bdac97d9288c069bfe.zip
Merge branch 'master' into patmat
Conflicts: src/compiler/scala/tools/nsc/Global.scala src/compiler/scala/tools/nsc/transform/patmat/MatchTranslation.scala
Diffstat (limited to 'src/reflect/scala/reflect/internal/SymbolTable.scala')
-rw-r--r--src/reflect/scala/reflect/internal/SymbolTable.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/SymbolTable.scala b/src/reflect/scala/reflect/internal/SymbolTable.scala
index afe2e41c3e..a6f9dfc164 100644
--- a/src/reflect/scala/reflect/internal/SymbolTable.scala
+++ b/src/reflect/scala/reflect/internal/SymbolTable.scala
@@ -60,6 +60,7 @@ abstract class SymbolTable extends macros.Universe
def shouldLogAtThisPhase = false
def isPastTyper = false
+ protected def isDeveloper: Boolean = settings.debug
@deprecated("Give us a reason", "2.10.0")
def abort(): Nothing = abort("unknown error")
@@ -69,8 +70,12 @@ abstract class SymbolTable extends macros.Universe
/** Override with final implementation for inlining. */
def debuglog(msg: => String): Unit = if (settings.debug) log(msg)
- def devWarning(msg: => String): Unit = if (settings.debug) Console.err.println(msg)
+ def devWarning(msg: => String): Unit = if (isDeveloper) Console.err.println(msg)
def throwableAsString(t: Throwable): String = "" + t
+ def throwableAsString(t: Throwable, maxFrames: Int): String = t.getStackTrace take maxFrames mkString "\n at "
+
+ @inline final def devWarningDumpStack(msg: => String, maxFrames: Int): Unit =
+ devWarning(msg + "\n" + throwableAsString(new Throwable, maxFrames))
/** Prints a stack trace if -Ydebug or equivalent was given, otherwise does nothing. */
def debugStack(t: Throwable): Unit = devWarning(throwableAsString(t))