diff options
author | Martin Odersky <odersky@gmail.com> | 2016-06-29 20:03:38 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-07-11 13:35:03 +0200 |
commit | f6efd99e09843d54150f4c5e0f723087ba92007e (patch) | |
tree | 0fb5d0f84c3ed99e5a403437fd7321fe5a783cc6 /src/dotty/tools/dotc/core/unpickleScala2 | |
parent | 3490e018e8b11a9d30629e8d415cbae5efd4abf4 (diff) | |
download | dotty-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.scala | 8 |
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 } |