summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-03-25 21:21:27 +0000
committerPaul Phillips <paulp@improving.org>2011-03-25 21:21:27 +0000
commit22d1ae7fa498df9ca80a686ca28ce5f816b6f945 (patch)
tree2a2ab5914d9c8a229bb814e0615b2878d0a0ac1f /src/compiler
parent5083559781208d1b8805ab8f5cb773a225436526 (diff)
downloadscala-22d1ae7fa498df9ca80a686ca28ce5f816b6f945.tar.gz
scala-22d1ae7fa498df9ca80a686ca28ce5f816b6f945.tar.bz2
scala-22d1ae7fa498df9ca80a686ca28ce5f816b6f945.zip
Fixed the "poor resilience to error conditions"...
Fixed the "poor resilience to error conditions" crasher mentioned in #3625, no review.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
index 118d650586..8166b36c31 100644
--- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
@@ -741,7 +741,8 @@ trait Definitions extends reflect.generic.StandardDefinitions {
case _ => tp
}
def flatNameString(sym: Symbol, separator: Char): String =
- if (sym.owner.isPackageClass) sym.fullName('.') + (if (sym.isModuleClass) "$" else "")
+ if (sym == NoSymbol) "" // be more resistant to error conditions, e.g. neg/t3222.scala
+ else if (sym.owner.isPackageClass) sym.fullName('.') + (if (sym.isModuleClass) "$" else "")
else flatNameString(sym.owner, separator) + "$" + sym.simpleName;
def signature1(etp: Type): String = {
if (etp.typeSymbol == ArrayClass) "[" + signature1(erasure(etp.normalize.typeArgs.head))