diff options
author | Martin Odersky <odersky@gmail.com> | 2013-10-23 12:24:31 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-10-23 12:24:31 +0200 |
commit | 863e27b940215b2d0f9a9bf8b09b4f5f4b83409e (patch) | |
tree | 49cbe19870e86be7cc11fe7b0cb3b801586fa51b | |
parent | 0661c2e7626adbe23216e89e221a4cda33ef0d85 (diff) | |
download | dotty-863e27b940215b2d0f9a9bf8b09b4f5f4b83409e.tar.gz dotty-863e27b940215b2d0f9a9bf8b09b4f5f4b83409e.tar.bz2 dotty-863e27b940215b2d0f9a9bf8b09b4f5f4b83409e.zip |
Making explanations available outside type comparers
-rw-r--r-- | src/dotty/tools/dotc/core/TypeComparer.scala | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/TypeComparer.scala b/src/dotty/tools/dotc/core/TypeComparer.scala index 1b8350841..727b18e77 100644 --- a/src/dotty/tools/dotc/core/TypeComparer.scala +++ b/src/dotty/tools/dotc/core/TypeComparer.scala @@ -788,6 +788,8 @@ class TypeComparer(initctx: Context) extends DotClass { } */ def copyIn(ctx: Context) = new TypeComparer(ctx) + + def traceIndented[T](str: String)(op: => T): T = op } object TypeComparer { @@ -802,7 +804,17 @@ class ExplainingTypeComparer(initctx: Context) extends TypeComparer(initctx) { private var indent = 0 private val b = new StringBuilder - def traceIndented[T](str: String)(op: => T): T = { + private var skipped = false + + override def traceIndented[T](str: String)(op: => T): T = + if (skipped) + op +/* + else if (str startsWith " =+ scala.collection.immutable.List <:< =+ scala.collection.immutable.List") { + skipped = true + try op + finally skipped = false + }*/ else { indent += 2 b append "\n" append (" " * indent) append "==> " append str val res = op |