aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-10-14 10:37:32 +0200
committerMartin Odersky <odersky@gmail.com>2013-10-14 10:37:32 +0200
commit77f62c9faa4b03b6deb6d1e95afe9d88fb4e02c7 (patch)
tree588d0ee3aeaf515243f2dbe04d20b1ad4ad6078d
parent0e88e6ffbaf4a9597793fa188e60d0e62a4af96b (diff)
downloaddotty-77f62c9faa4b03b6deb6d1e95afe9d88fb4e02c7.tar.gz
dotty-77f62c9faa4b03b6deb6d1e95afe9d88fb4e02c7.tar.bz2
dotty-77f62c9faa4b03b6deb6d1e95afe9d88fb4e02c7.zip
Made tracing appear even when currently in StoreReporter context
-rw-r--r--src/dotty/tools/dotc/reporting/Reporter.scala6
-rw-r--r--src/dotty/tools/dotc/typer/Applications.scala6
-rw-r--r--src/dotty/tools/dotc/typer/Implicits.scala2
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)