aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/ErrorReporting.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-09-23 22:33:24 +0200
committerMartin Odersky <odersky@gmail.com>2013-09-23 22:33:24 +0200
commit8b67961c8f66348e062e6ddb4bdad732f4bb5b10 (patch)
tree94ac1910931b6125352ec3c888e96826ea40c637 /src/dotty/tools/dotc/typer/ErrorReporting.scala
parent918c190c91a27212caf2152f9a65533f9dff395d (diff)
downloaddotty-8b67961c8f66348e062e6ddb4bdad732f4bb5b10.tar.gz
dotty-8b67961c8f66348e062e6ddb4bdad732f4bb5b10.tar.bz2
dotty-8b67961c8f66348e062e6ddb4bdad732f4bb5b10.zip
Better display of list arguments in "i" interpolator
Diffstat (limited to 'src/dotty/tools/dotc/typer/ErrorReporting.scala')
-rw-r--r--src/dotty/tools/dotc/typer/ErrorReporting.scala12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/typer/ErrorReporting.scala b/src/dotty/tools/dotc/typer/ErrorReporting.scala
index a078476e3..a23e87811 100644
--- a/src/dotty/tools/dotc/typer/ErrorReporting.scala
+++ b/src/dotty/tools/dotc/typer/ErrorReporting.scala
@@ -97,16 +97,20 @@ object ErrorReporting {
}
def treatArg(arg: Any, suffix: String): (Any, String) = arg match {
- case arg: Showable =>
- (arg.show, suffix)
case arg: List[_] if suffix.nonEmpty && suffix.head == '%' =>
- val (sep, rest) = suffix.tail.span(_ != '%')
- if (rest.nonEmpty) (arg mkString sep, rest.tail)
+ val (rawsep, rest) = suffix.tail.span(_ != '%')
+ val sep = StringContext.treatEscapes(rawsep)
+ if (rest.nonEmpty) (arg map treatSingleArg mkString sep, rest.tail)
else (arg, suffix)
case _ =>
(arg, suffix)
}
+ def treatSingleArg(arg: Any) : Any = arg match {
+ case arg: Showable => arg.show
+ case _ => arg
+ }
+
if (ctx.reporter.hasErrors &&
ctx.suppressNonSensicalErrors &&
!ctx.settings.YshowSuppressedErrors.value &&