aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/pickling/UnPickler.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-04-09 11:39:41 +0200
committerMartin Odersky <odersky@gmail.com>2013-04-09 11:39:41 +0200
commit8d445b89b1bae849540cb4da200f64c92e746bbf (patch)
treedcaecc813d047aaf1fdd3bfb84d07e97a7fdb467 /src/dotty/tools/dotc/core/pickling/UnPickler.scala
parent0820a6e44987d69c2ad297330653e49e04e84554 (diff)
downloaddotty-8d445b89b1bae849540cb4da200f64c92e746bbf.tar.gz
dotty-8d445b89b1bae849540cb4da200f64c92e746bbf.tar.bz2
dotty-8d445b89b1bae849540cb4da200f64c92e746bbf.zip
Unpickling now removes ExprTypes nested in PolyTypes.
Diffstat (limited to 'src/dotty/tools/dotc/core/pickling/UnPickler.scala')
-rw-r--r--src/dotty/tools/dotc/core/pickling/UnPickler.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/UnPickler.scala b/src/dotty/tools/dotc/core/pickling/UnPickler.scala
index 02fc079ef..ae1e9de36 100644
--- a/src/dotty/tools/dotc/core/pickling/UnPickler.scala
+++ b/src/dotty/tools/dotc/core/pickling/UnPickler.scala
@@ -675,7 +675,11 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot:
case POLYtpe =>
val restpe = readTypeRef()
val typeParams = until(end, readSymbolRef)
- if (typeParams.nonEmpty) TempPolyType(typeParams, restpe)
+ def deExpr(tp: Type) = tp match {
+ case ExprType(restpe) => restpe
+ case tp => tp
+ }
+ if (typeParams.nonEmpty) TempPolyType(typeParams, deExpr(restpe))
else ExprType(restpe)
case EXISTENTIALtpe =>
val restpe = readTypeRef()