aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/unpickleScala2
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-06-29 20:03:38 +0200
committerMartin Odersky <odersky@gmail.com>2016-07-11 13:35:03 +0200
commitf6efd99e09843d54150f4c5e0f723087ba92007e (patch)
tree0fb5d0f84c3ed99e5a403437fd7321fe5a783cc6 /src/dotty/tools/dotc/core/unpickleScala2
parent3490e018e8b11a9d30629e8d415cbae5efd4abf4 (diff)
downloaddotty-f6efd99e09843d54150f4c5e0f723087ba92007e.tar.gz
dotty-f6efd99e09843d54150f4c5e0f723087ba92007e.tar.bz2
dotty-f6efd99e09843d54150f4c5e0f723087ba92007e.zip
Fix appliedTo and typeParams, and higher kinded subtyping tests
Add existential type elimination for HKApply
Diffstat (limited to 'src/dotty/tools/dotc/core/unpickleScala2')
-rw-r--r--src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala b/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
index 18a4e83b6..aa660f73e 100644
--- a/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
+++ b/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
@@ -632,6 +632,14 @@ class Scala2Unpickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClas
case info =>
tp.derivedRefinedType(parent1, name, info)
}
+ case tp @ HKApply(tycon, args) =>
+ val tycon1 = tycon.safeDealias
+ def mapArg(arg: Type) = arg match {
+ case arg: TypeRef if isBound(arg) => arg.symbol.info
+ case _ => arg
+ }
+ if (tycon1 ne tycon) elim(tycon1.appliedTo(args))
+ else tp.derivedAppliedType(tycon, args.map(mapArg))
case _ =>
tp
}