aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/ErrorReporting.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/typer/ErrorReporting.scala')
-rw-r--r--src/dotty/tools/dotc/typer/ErrorReporting.scala11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/typer/ErrorReporting.scala b/src/dotty/tools/dotc/typer/ErrorReporting.scala
index 57ea5ebda..a078476e3 100644
--- a/src/dotty/tools/dotc/typer/ErrorReporting.scala
+++ b/src/dotty/tools/dotc/typer/ErrorReporting.scala
@@ -68,11 +68,16 @@ object ErrorReporting {
}
def typeMismatchStr(found: Type, expected: Type) = {
- if (ctx.settings.explaintypes.value)
- (found <:< expected)(ctx.fresh.withTypeComparerFn(new ExplainingTypeComparer(_)))
+ val (typerStateStr, explanationStr) =
+ if (ctx.settings.explaintypes.value) {
+ val nestedCtx = ctx.fresh.withTypeComparerFn(new ExplainingTypeComparer(_))
+ (found <:< expected)(nestedCtx)
+ ("\n" + ctx.typerState.show, "\n" + nestedCtx.typeComparer.toString)
+ }
+ else ("", "")
i"""type mismatch:
| found : $found
- | required: $expected""".stripMargin
+ | required: $expected""".stripMargin + typerStateStr + explanationStr
}
}