diff options
author | Martin Odersky <odersky@gmail.com> | 2016-07-13 15:17:17 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-07-13 15:33:47 +0200 |
commit | 18b30803952cee83580eab28068bc773fdce780e (patch) | |
tree | 03c603f0920da2b987d9b93b5b820c099f9049e5 /src/dotty/tools/dotc/core/TypeApplications.scala | |
parent | 0ff5354e2a5e3f29234d6d761177f9228d8da522 (diff) | |
download | dotty-18b30803952cee83580eab28068bc773fdce780e.tar.gz dotty-18b30803952cee83580eab28068bc773fdce780e.tar.bz2 dotty-18b30803952cee83580eab28068bc773fdce780e.zip |
Allow hk parameters in lower bounds
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeApplications.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/TypeApplications.scala | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/TypeApplications.scala b/src/dotty/tools/dotc/core/TypeApplications.scala index db6020e54..ef241cb66 100644 --- a/src/dotty/tools/dotc/core/TypeApplications.scala +++ b/src/dotty/tools/dotc/core/TypeApplications.scala @@ -349,7 +349,9 @@ class TypeApplications(val self: Type) extends AnyVal { case self: TypeAlias => self.derivedTypeAlias(expand(self.alias)) case self @ TypeBounds(lo, hi) => - self.derivedTypeBounds(lo, expand(hi)) + self.derivedTypeBounds( + if (lo.isRef(defn.NothingClass)) lo else expand(lo), + expand(hi)) case _ => expand(self) } } @@ -431,7 +433,7 @@ class TypeApplications(val self: Type) extends AnyVal { case arg @ TypeAlias(alias) => arg.derivedTypeAlias(adaptArg(alias)) case arg @ TypeBounds(lo, hi) => - arg.derivedTypeBounds(lo, adaptArg(hi)) + arg.derivedTypeBounds(adaptArg(lo), adaptArg(hi)) case _ => arg } @@ -504,7 +506,7 @@ class TypeApplications(val self: Type) extends AnyVal { case dealiased: TypeAlias => dealiased.derivedTypeAlias(dealiased.alias.appliedTo(args)) case dealiased: TypeBounds => - dealiased.derivedTypeBounds(dealiased.lo, dealiased.hi.appliedTo(args)) + dealiased.derivedTypeBounds(dealiased.lo.appliedTo(args), dealiased.hi.appliedTo(args)) case dealiased: LazyRef => LazyRef(() => dealiased.ref.appliedTo(args)) case dealiased: WildcardType => |