diff options
author | Martin Odersky <odersky@gmail.com> | 2011-02-13 15:04:53 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2011-02-13 15:04:53 +0000 |
commit | 1584f3f018f93950b155f16c30e3f823af96311c (patch) | |
tree | 109185318aa9db6affb569f24e2a23ebc2003dce /src | |
parent | 953e3767a0dd9e93d440ce0018cb47d79d1a16ce (diff) | |
download | scala-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.scala | 3 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Types.scala | 6 |
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) } |