From 470c69928fe2bbf41c3142ac066c49fb7a0ee7c9 Mon Sep 17 00:00:00 2001 From: Christoffer Sawicki Date: Sun, 11 Aug 2013 21:04:29 +0200 Subject: SI-7740 Trim stack trace before printing in REPL --- src/compiler/scala/tools/nsc/util/package.scala | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/compiler') diff --git a/src/compiler/scala/tools/nsc/util/package.scala b/src/compiler/scala/tools/nsc/util/package.scala index 752aac5c8c..ea3c9d8dde 100644 --- a/src/compiler/scala/tools/nsc/util/package.scala +++ b/src/compiler/scala/tools/nsc/util/package.scala @@ -8,6 +8,7 @@ package tools package nsc import java.io.{ OutputStream, PrintStream, ByteArrayOutputStream, PrintWriter, StringWriter } +import scala.compat.Platform.EOL package object util { @@ -78,6 +79,14 @@ package object util { s"$clazz$msg @ $frame" } + def stackTracePrefixString(ex: Throwable)(p: StackTraceElement => Boolean): String = { + val frames = ex.getStackTrace takeWhile p map (" at " + _) + val msg = ex.getMessage match { case null => "" ; case s => s": $s" } + val clazz = ex.getClass.getName + + s"$clazz$msg" +: frames mkString EOL + } + lazy val trace = new SimpleTracer(System.out) @deprecated("Moved to scala.reflect.internal.util.StringOps", "2.10.0") -- cgit v1.2.3