summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/library/scala/reflect/generic/Flags.scala3
-rwxr-xr-xsrc/library/scala/reflect/generic/UnPickler.scala5
2 files changed, 3 insertions, 5 deletions
diff --git a/src/library/scala/reflect/generic/Flags.scala b/src/library/scala/reflect/generic/Flags.scala
index 81e6fbddec..06d4502ee0 100755
--- a/src/library/scala/reflect/generic/Flags.scala
+++ b/src/library/scala/reflect/generic/Flags.scala
@@ -100,7 +100,8 @@ object ModifierFlags extends ModifierFlags
private final val PKL_MASK = 0x00000FFF
- final val PickledFlags: Long = 0xFFFFFFFFL
+ // must pickle EXISTENTIAL for SI-6692
+ final val PickledFlags: Long = 0x8FFFFFFFFL
private def rawPickledCorrespondence = Array(
(IMPLICIT, IMPLICIT_PKL),
diff --git a/src/library/scala/reflect/generic/UnPickler.scala b/src/library/scala/reflect/generic/UnPickler.scala
index 745dd1c0da..b7f324d6a3 100755
--- a/src/library/scala/reflect/generic/UnPickler.scala
+++ b/src/library/scala/reflect/generic/UnPickler.scala
@@ -396,10 +396,7 @@ abstract class UnPickler {
NullaryMethodType(restpe)
case EXISTENTIALtpe =>
val restpe = readTypeRef()
- val tparams = until(end, readSymbolRef)
- // binary compatibility: in 2.9.x, Symbol doesn't have setFlag
- tparams foreach (x => x.asInstanceOf[{ def setFlag(mask: Long): this.type }] setFlag EXISTENTIAL)
- ExistentialType(tparams, restpe)
+ ExistentialType(until(end, readSymbolRef), restpe)
case ANNOTATEDtpe =>
var typeRef = readNat()
val selfsym = if (isSymbolRef(typeRef)) {