diff options
author | Martin Odersky <odersky@gmail.com> | 2013-11-28 21:55:31 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-11-28 21:55:31 +0100 |
commit | 98160c43002907b2784d1031c476cd46b912e752 (patch) | |
tree | 719b240fff2f060f13c1c950ddb87978a8ee3777 /src/dotty/tools/dotc/core/Substituters.scala | |
parent | 4dadbda073422eba3745866737f438aa772169df (diff) | |
download | dotty-98160c43002907b2784d1031c476cd46b912e752.tar.gz dotty-98160c43002907b2784d1031c476cd46b912e752.tar.bz2 dotty-98160c43002907b2784d1031c476cd46b912e752.zip |
Making substitutions deep type maps that also map parents and self type of a class info.
Diffstat (limited to 'src/dotty/tools/dotc/core/Substituters.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/Substituters.scala | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/dotty/tools/dotc/core/Substituters.scala b/src/dotty/tools/dotc/core/Substituters.scala index 763c3eea7..0df1ea49f 100644 --- a/src/dotty/tools/dotc/core/Substituters.scala +++ b/src/dotty/tools/dotc/core/Substituters.scala @@ -172,39 +172,39 @@ trait Substituters { this: Context => case nil => false } - final class SubstBindingMap(from: BindingType, to: BindingType) extends TypeMap { + final class SubstBindingMap(from: BindingType, to: BindingType) extends DeepTypeMap { def apply(tp: Type) = subst(tp, from, to, this) } - final class Subst1Map(from: Symbol, to: Type) extends TypeMap { + final class Subst1Map(from: Symbol, to: Type) extends DeepTypeMap { def apply(tp: Type) = subst1(tp, from, to, this) } - final class Subst2Map(from1: Symbol, to1: Type, from2: Symbol, to2: Type) extends TypeMap { + final class Subst2Map(from1: Symbol, to1: Type, from2: Symbol, to2: Type) extends DeepTypeMap { def apply(tp: Type) = subst2(tp, from1, to1, from2, to2, this) } - final class SubstMap(from: List[Symbol], to: List[Type]) extends TypeMap { + final class SubstMap(from: List[Symbol], to: List[Type]) extends DeepTypeMap { def apply(tp: Type): Type = subst(tp, from, to, this) } - final class SubstSymMap(from: List[Symbol], to: List[Symbol]) extends TypeMap { + final class SubstSymMap(from: List[Symbol], to: List[Symbol]) extends DeepTypeMap { def apply(tp: Type): Type = substSym(tp, from, to, this) } - final class SubstThisMap(from: ClassSymbol, to: Type) extends TypeMap { + final class SubstThisMap(from: ClassSymbol, to: Type) extends DeepTypeMap { def apply(tp: Type): Type = substThis(tp, from, to, this) } - final class SubstRefinedThisMap(from: RefinedType, to: Type) extends TypeMap { + final class SubstRefinedThisMap(from: RefinedType, to: Type) extends DeepTypeMap { def apply(tp: Type): Type = substThis(tp, from, to, this) } - final class SubstParamMap(from: ParamType, to: Type) extends TypeMap { + final class SubstParamMap(from: ParamType, to: Type) extends DeepTypeMap { def apply(tp: Type) = substParam(tp, from, to, this) } - final class SubstParamsMap(from: BindingType, to: List[Type]) extends TypeMap { + final class SubstParamsMap(from: BindingType, to: List[Type]) extends DeepTypeMap { def apply(tp: Type) = substParams(tp, from, to, this) } }
\ No newline at end of file |