summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2011-02-13 15:04:53 +0000
committerMartin Odersky <odersky@gmail.com>2011-02-13 15:04:53 +0000
commit1584f3f018f93950b155f16c30e3f823af96311c (patch)
tree109185318aa9db6affb569f24e2a23ebc2003dce /src
parent953e3767a0dd9e93d440ce0018cb47d79d1a16ce (diff)
downloadscala-1584f3f018f93950b155f16c30e3f823af96311c.tar.gz
scala-1584f3f018f93950b155f16c30e3f823af96311c.tar.bz2
scala-1584f3f018f93950b155f16c30e3f823af96311c.zip
More tweaks to rawToExistential to avoid pile-u...
More tweaks to rawToExistential to avoid pile-up of transformations.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala3
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala6
2 files changed, 4 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
index 58c87e2215..98bd271556 100644
--- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
@@ -851,12 +851,9 @@ trait Symbols extends reflect.generic.Symbols { self: SymbolTable =>
* We can't do this on class loading because it would result in infinite cycles.
*/
final def cookJavaRawInfo() {
- // println("cookJavaRawInfo: "+(rawname, triedCooking))
if (hasFlag(TRIEDCOOKING)) return else setFlag(TRIEDCOOKING) // only try once...
val oldInfo = info
doCookJavaRawInfo()
- if ((info ne oldInfo) && settings.verbose.value)
- println("cooking "+this+": "+oldInfo+" --> "+info) // DEBUG
}
protected def doCookJavaRawInfo(): Unit
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala
index 950a1d7725..fee7fd2180 100644
--- a/src/compiler/scala/tools/nsc/symtab/Types.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Types.scala
@@ -3269,11 +3269,13 @@ A type's typeSymbol should never be inspected directly.
if (expanded contains sym) AnyRefClass.tpe
else try {
expanded += sym
- val eparams = typeParamsToExistentials(sym, sym.typeParams)
- existentialAbstraction(eparams, typeRef(pre, sym, eparams map (_.tpe)))
+ val eparams = mapOver(typeParamsToExistentials(sym, sym.typeParams))
+ existentialAbstraction(eparams, typeRef(apply(pre), sym, eparams map (_.tpe)))
} finally {
expanded -= sym
}
+ case ExistentialType(_, _) => // stop to avoid infinite expansions
+ tp
case _ =>
mapOver(tp)
}