diff options
author | Martin Odersky <odersky@gmail.com> | 2015-09-24 16:20:57 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-10-01 19:33:25 +0200 |
commit | 3f4c6a2b63bf94526792d108eaffc761d7d19ee5 (patch) | |
tree | f3d29a437d633b9cff252d770c23667d07779e18 /src/dotty/tools/dotc/reporting/Reporter.scala | |
parent | c6b21267c1f96cf8708689319f884d7d5cc04284 (diff) | |
download | dotty-3f4c6a2b63bf94526792d108eaffc761d7d19ee5.tar.gz dotty-3f4c6a2b63bf94526792d108eaffc761d7d19ee5.tar.bz2 dotty-3f4c6a2b63bf94526792d108eaffc761d7d19ee5.zip |
Slight code refactoring
Avoid redundant computations when already in printing mode.
Diffstat (limited to 'src/dotty/tools/dotc/reporting/Reporter.scala')
-rw-r--r-- | src/dotty/tools/dotc/reporting/Reporter.scala | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/dotty/tools/dotc/reporting/Reporter.scala b/src/dotty/tools/dotc/reporting/Reporter.scala index 766009a8b..086575fb4 100644 --- a/src/dotty/tools/dotc/reporting/Reporter.scala +++ b/src/dotty/tools/dotc/reporting/Reporter.scala @@ -149,18 +149,19 @@ trait Reporting { this: Context => else traceIndented[T](s"==> $question?", (res: Any) => s"<== $question = ${resStr(res)}")(op) } - def traceIndented[T](leading: => String, trailing: Any => String)(op: => T): T = { - var finalized = false - var logctx = this - while (logctx.reporter.isInstanceOf[StoreReporter]) logctx = logctx.outer - def finalize(result: Any, note: String) = - if (!finalized) { - base.indent -= 1 - logctx.log(s"${base.indentTab * base.indent}${trailing(result)}$note") - finalized = true - } + def traceIndented[T](leading: => String, trailing: Any => String)(op: => T): T = if (ctx.mode.is(Mode.Printing)) op - else try { + else { + var finalized = false + var logctx = this + while (logctx.reporter.isInstanceOf[StoreReporter]) logctx = logctx.outer + def finalize(result: Any, note: String) = + if (!finalized) { + base.indent -= 1 + logctx.log(s"${base.indentTab * base.indent}${trailing(result)}$note") + finalized = true + } + try { logctx.log(s"${base.indentTab * base.indent}$leading") base.indent += 1 val res = op |