summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/reflect/internal/pickling/UnPickler.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/reflect/internal/pickling/UnPickler.scala b/src/compiler/scala/reflect/internal/pickling/UnPickler.scala
index 6c9ef4d545..f8ca0fb6de 100644
--- a/src/compiler/scala/reflect/internal/pickling/UnPickler.scala
+++ b/src/compiler/scala/reflect/internal/pickling/UnPickler.scala
@@ -369,8 +369,14 @@ abstract class UnPickler /*extends reflect.generic.UnPickler*/ {
else
NullaryMethodType(restpe)
case EXISTENTIALtpe =>
- val restpe = readTypeRef()
- ExistentialType(until(end, readSymbolRef), restpe)
+ val restpe = readTypeRef()
+ // @PP: Where is the flag setting supposed to happen? I infer
+ // from the lack of flag setting in the rest of the unpickler
+ // that it isn't right here. See #4757 for the immediate
+ // motivation to fix it.
+ val tparams = until(end, readSymbolRef) map (_ setFlag EXISTENTIAL)
+ ExistentialType(tparams, restpe)
+
case ANNOTATEDtpe =>
var typeRef = readNat()
val selfsym = if (isSymbolRef(typeRef)) {