diff options
author | Paul Phillips <paulp@improving.org> | 2011-02-04 04:31:38 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-02-04 04:31:38 +0000 |
commit | 4d862deb3a8ed81f9d084d1be41b617f074a2af5 (patch) | |
tree | a18f60f1333e7b76d27dd8e0a72e54d76c8272d6 /src/compiler/scala/tools/nsc/interpreter/IMain.scala | |
parent | f61020bb96c06f8da1f57e89703b233d01ec254c (diff) | |
download | scala-4d862deb3a8ed81f9d084d1be41b617f074a2af5.tar.gz scala-4d862deb3a8ed81f9d084d1be41b617f074a2af5.tar.bz2 scala-4d862deb3a8ed81f9d084d1be41b617f074a2af5.zip |
Ignore anonymous and synthetic classes when ass...
Ignore anonymous and synthetic classes when assessing the "runtime type"
of an object. No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/interpreter/IMain.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/interpreter/IMain.scala | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/interpreter/IMain.scala b/src/compiler/scala/tools/nsc/interpreter/IMain.scala index 21c9dd735e..8c02296904 100644 --- a/src/compiler/scala/tools/nsc/interpreter/IMain.scala +++ b/src/compiler/scala/tools/nsc/interpreter/IMain.scala @@ -948,8 +948,15 @@ class IMain(val settings: Settings, protected val out: PrintWriter) { def symbolOfTerm(id: String): Symbol = requestForIdent(id) flatMap (_.definedSymbols get newTermName(id)) getOrElse NoSymbol - def runtimeClassAndTypeOfTerm(id: String): Option[(Class[_], Type)] = - for (clazz <- classOfTerm(id) ; tpe <- runtimeTypeOfTerm(id)) yield ((clazz, tpe)) + def runtimeClassAndTypeOfTerm(id: String): Option[(Class[_], Type)] = { + for { + clazz <- classOfTerm(id) + tpe <- runtimeTypeOfTerm(id) + nonAnon <- clazz.supers find (!_.isScalaAnonymous) + } yield { + (nonAnon, tpe) + } + } def runtimeTypeOfTerm(id: String): Option[Type] = { for { |