diff options
author | Martin Odersky <odersky@gmail.com> | 2016-06-30 14:27:43 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-07-11 13:35:07 +0200 |
commit | 32c0135b59fe02a70ed0b1a693251a0028d479c8 (patch) | |
tree | 289c07464da953f9709bf69a1e9658d430575e71 /src/dotty/tools/dotc/core/TypeApplications.scala | |
parent | b6a8bc77fe3af4f6f722fdbaed8a0f7c8c6774ac (diff) | |
download | dotty-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.scala | 9 |
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) => |