aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeApplications.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-06-30 14:27:43 +0200
committerMartin Odersky <odersky@gmail.com>2016-07-11 13:35:07 +0200
commit32c0135b59fe02a70ed0b1a693251a0028d479c8 (patch)
tree289c07464da953f9709bf69a1e9658d430575e71 /src/dotty/tools/dotc/core/TypeApplications.scala
parentb6a8bc77fe3af4f6f722fdbaed8a0f7c8c6774ac (diff)
downloaddotty-32c0135b59fe02a70ed0b1a693251a0028d479c8.tar.gz
dotty-32c0135b59fe02a70ed0b1a693251a0028d479c8.tar.bz2
dotty-32c0135b59fe02a70ed0b1a693251a0028d479c8.zip
Refactorings of GenericTypes and underlying/upperbound
1. Make genericType a trait instead of a class. 2. Make TypeLambda a type proxy 3. Split underlying in TypeProxy into underlying and superType 4. Cleanups in many other places
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeApplications.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeApplications.scala9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/core/TypeApplications.scala b/src/dotty/tools/dotc/core/TypeApplications.scala
index a685c11c7..94ca7a3ac 100644
--- a/src/dotty/tools/dotc/core/TypeApplications.scala
+++ b/src/dotty/tools/dotc/core/TypeApplications.scala
@@ -275,7 +275,7 @@ class TypeApplications(val self: Type) extends AnyVal {
if (params.exists(_.name == self.refinedName)) parent1
else self.derivedRefinedType(parent1, self.refinedName, self.refinedInfo)
case self: TypeProxy =>
- self.underlying.widenToNamedTypeParams(params)
+ self.superType.widenToNamedTypeParams(params)
case self: AndOrType =>
self.derivedAndOrType(
self.tp1.widenToNamedTypeParams(params), self.tp2.widenToNamedTypeParams(params))
@@ -317,7 +317,6 @@ class TypeApplications(val self: Type) extends AnyVal {
case self: SingletonType => -1
case self: TypeVar => self.origin.knownHK
case self: WildcardType => self.optBounds.knownHK
- case self: PolyParam => self.underlying.knownHK
case self: TypeProxy => self.underlying.knownHK
case NoType | _: LazyType => 0
case _ => -1
@@ -568,7 +567,7 @@ class TypeApplications(val self: Type) extends AnyVal {
final def baseArgInfos(base: Symbol)(implicit ctx: Context): List[Type] =
if (self derivesFrom base)
self match {
- case self: HKApply => self.upperBound.baseArgInfos(base)
+ case self: HKApply => self.superType.baseArgInfos(base)
case _ => base.typeParams.map(param => self.member(param.name).info.argInfo)
}
else
@@ -596,7 +595,7 @@ class TypeApplications(val self: Type) extends AnyVal {
final def firstBaseArgInfo(base: Symbol)(implicit ctx: Context): Type = base.typeParams match {
case param :: _ if self derivesFrom base =>
self match {
- case self: HKApply => self.upperBound.firstBaseArgInfo(base)
+ case self: HKApply => self.superType.firstBaseArgInfo(base)
case _ => self.member(param.name).info.argInfo
}
case _ =>
@@ -621,7 +620,7 @@ class TypeApplications(val self: Type) extends AnyVal {
case tp: TermRef =>
tp.underlying.baseTypeWithArgs(base)
case tp: HKApply =>
- tp.upperBound.baseTypeWithArgs(base)
+ tp.superType.baseTypeWithArgs(base)
case AndType(tp1, tp2) =>
tp1.baseTypeWithArgs(base) & tp2.baseTypeWithArgs(base)
case OrType(tp1, tp2) =>