diff options
author | Martin Odersky <odersky@gmail.com> | 2009-10-12 10:17:51 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-10-12 10:17:51 +0000 |
commit | bf02e46f2ae1fde75f28da909b8a6e23383cec9b (patch) | |
tree | c2116e7dd40e0206c9e3ff0233034c3ecc8a0a8d /src/compiler | |
parent | f75ee36c6fb4386eb89f19c40dfa000076aa9307 (diff) | |
download | scala-bf02e46f2ae1fde75f28da909b8a6e23383cec9b.tar.gz scala-bf02e46f2ae1fde75f28da909b8a6e23383cec9b.tar.bz2 scala-bf02e46f2ae1fde75f28da909b8a6e23383cec9b.zip |
Fixed #2099.
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala b/src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala index 2b4d7d33de..e26e8d41ca 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/UnPickler.scala @@ -201,7 +201,7 @@ abstract class UnPickler { // the "case Apply" in readTree() takes care of selecting the correct alternative // after parsing the arguments. if (sym == NoSymbol && !owner.hasFlag(OVERLOADED)) { - errorBadSignature( + errorMissingRequirement( "reference " + (if (name.isTypeName) "type " else "value ") + name.decode + " of " + owner + " refers to nonexisting symbol.") } @@ -813,6 +813,10 @@ abstract class UnPickler { private def errorBadSignature(msg: String) = throw new RuntimeException("malformed Scala signature of " + classRoot.name + " at " + readIndex + "; " + msg) + private def errorMissingRequirement(msg: String) = + if (settings.debug.value) errorBadSignature(msg) + else throw new IOException("class file needed by "+classRoot.name+" is missing.\n"+msg) + private class LazyTypeRef(i: Int) extends LazyType { private val definedAtRunId = currentRunId private val p = phase |