summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-12-11 19:56:22 +0100
committerJason Zaugg <jzaugg@gmail.com>2013-12-11 19:56:22 +0100
commit3bfd83971ec48102fd1e711236f5a313c6a1ce3e (patch)
treea75d929d7fc7e2c0ac4b5e620a4019a4936abeeb /src/library
parente1c6dd965aa4249f715bbb2832df182cc5505853 (diff)
parent9cdbe28c00b39c51ae9afe3066c8b44a6e5f6f96 (diff)
downloadscala-3bfd83971ec48102fd1e711236f5a313c6a1ce3e.tar.gz
scala-3bfd83971ec48102fd1e711236f5a313c6a1ce3e.tar.bz2
scala-3bfd83971ec48102fd1e711236f5a313c6a1ce3e.zip
Merge commit '9cdbe28' into merge/2.10.x-to-master
Conflicts: build.examples.xml build.xml docs/examples/actors/pingpong.scala docs/examples/fors.scala docs/examples/iterators.scala docs/examples/jolib/Ref.scala docs/examples/jolib/parallelOr.scala docs/examples/monads/callccInterpreter.scala docs/examples/monads/directInterpreter.scala docs/examples/monads/errorInterpreter.scala docs/examples/monads/simpleInterpreter.scala docs/examples/monads/stateInterpreter.scala docs/examples/parsing/ArithmeticParser.scala docs/examples/patterns.scala docs/examples/pilib/elasticBuffer.scala docs/examples/pilib/handover.scala docs/examples/pilib/piNat.scala docs/examples/typeinf.scala src/build/pack.xml
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/MatchError.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/library/scala/MatchError.scala b/src/library/scala/MatchError.scala
index 6ba7e833d3..9965bb19b5 100644
--- a/src/library/scala/MatchError.scala
+++ b/src/library/scala/MatchError.scala
@@ -23,9 +23,15 @@ final class MatchError(obj: Any) extends RuntimeException {
/** There's no reason we need to call toString eagerly,
* so defer it until getMessage is called.
*/
- private lazy val objString =
+ private lazy val objString = {
+ def ofClass = "of class " + obj.getClass.getName
if (obj == null) "null"
- else obj.toString() + " (of class " + obj.getClass.getName + ")"
+ else try {
+ obj.toString() + " (" + ofClass + ")"
+ } catch {
+ case _: Throwable => "an instance " + ofClass
+ }
+ }
override def getMessage() = objString
}