diff options
author | Martin Odersky <odersky@gmail.com> | 2013-10-14 10:37:32 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-10-14 10:37:32 +0200 |
commit | 77f62c9faa4b03b6deb6d1e95afe9d88fb4e02c7 (patch) | |
tree | 588d0ee3aeaf515243f2dbe04d20b1ad4ad6078d /src/dotty | |
parent | 0e88e6ffbaf4a9597793fa188e60d0e62a4af96b (diff) | |
download | dotty-77f62c9faa4b03b6deb6d1e95afe9d88fb4e02c7.tar.gz dotty-77f62c9faa4b03b6deb6d1e95afe9d88fb4e02c7.tar.bz2 dotty-77f62c9faa4b03b6deb6d1e95afe9d88fb4e02c7.zip |
Made tracing appear even when currently in StoreReporter context
Diffstat (limited to 'src/dotty')
-rw-r--r-- | src/dotty/tools/dotc/reporting/Reporter.scala | 6 | ||||
-rw-r--r-- | src/dotty/tools/dotc/typer/Applications.scala | 6 | ||||
-rw-r--r-- | src/dotty/tools/dotc/typer/Implicits.scala | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/dotty/tools/dotc/reporting/Reporter.scala b/src/dotty/tools/dotc/reporting/Reporter.scala index 6f5f3b5cb..960fddff7 100644 --- a/src/dotty/tools/dotc/reporting/Reporter.scala +++ b/src/dotty/tools/dotc/reporting/Reporter.scala @@ -144,14 +144,16 @@ trait Reporting { this: Context => } 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 - log(s"${base.indentTab * base.indent}${trailing(result)}$note") + logctx.log(s"${base.indentTab * base.indent}${trailing(result)}$note") finalized = true } try { - log(s"${base.indentTab * base.indent}$leading") + logctx.log(s"${base.indentTab * base.indent}$leading") base.indent += 1 val res = op finalize(res, "") diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala index ef0fcf709..ce2caab84 100644 --- a/src/dotty/tools/dotc/typer/Applications.scala +++ b/src/dotty/tools/dotc/typer/Applications.scala @@ -410,10 +410,9 @@ trait Applications extends Compatibility { self: Typer => } def sameSeq[T <: Trees.Tree[_]](xs: List[T], ys: List[T]): Boolean = firstDiff(xs, ys) < 0 - val result = { + val result ={ var typedArgs = typedArgBuf.toList - println(s"typed args of $methRef = $typedArgs") - val ownType = + val ownType = ctx.traceIndented(s"apply $methRef to $typedArgs") { if (!success) ErrorType else { if (!sameSeq(app.args, orderedArgs)) { @@ -428,6 +427,7 @@ trait Applications extends Compatibility { self: Typer => typedArgs = args.asInstanceOf[List[Tree]] methodType.instantiate(typedArgs.tpes) } + } val app1 = cpy.Apply(app, normalizedFun, typedArgs).withType(ownType) if (liftedDefs != null && liftedDefs.nonEmpty) Block(liftedDefs.toList, app1) else app1 diff --git a/src/dotty/tools/dotc/typer/Implicits.scala b/src/dotty/tools/dotc/typer/Implicits.scala index 27c2f1961..832693b98 100644 --- a/src/dotty/tools/dotc/typer/Implicits.scala +++ b/src/dotty/tools/dotc/typer/Implicits.scala @@ -259,7 +259,7 @@ trait Implicits { self: Typer => * @param pos The position where errors should be reported. */ def inferImplicit(pt: Type, argument: Tree, pos: Position)(implicit ctx: Context): SearchResult = track("inferImplicit") { - ctx.traceIndented(s"search implicit $pt, arg = ${argument.show}", show = true) { + ctx.traceIndented(s"search implicit ${pt.show}, arg = ${argument.show}", show = true) { val isearch = if (ctx.settings.explaintypes.value) new ExplainedImplicitSearch(pt, argument, pos) else new ImplicitSearch(pt, argument, pos) |