summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/interpreter/IMain.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-02-04 04:31:38 +0000
committerPaul Phillips <paulp@improving.org>2011-02-04 04:31:38 +0000
commit4d862deb3a8ed81f9d084d1be41b617f074a2af5 (patch)
treea18f60f1333e7b76d27dd8e0a72e54d76c8272d6 /src/compiler/scala/tools/nsc/interpreter/IMain.scala
parentf61020bb96c06f8da1f57e89703b233d01ec254c (diff)
downloadscala-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.scala11
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 {