aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/core')
-rw-r--r--src/dotty/tools/dotc/core/Substituters.scala6
-rw-r--r--src/dotty/tools/dotc/core/Types.scala6
2 files changed, 10 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/Substituters.scala b/src/dotty/tools/dotc/core/Substituters.scala
index 1b96de47e..3d14317cb 100644
--- a/src/dotty/tools/dotc/core/Substituters.scala
+++ b/src/dotty/tools/dotc/core/Substituters.scala
@@ -205,7 +205,11 @@ trait Substituters { this: Context =>
final class SubstMap(from: List[Symbol], to: List[Type]) extends DeepTypeMap {
def apply(tp: Type): Type = subst(tp, from, to, this)
}
-
+/* not needed yet
+ final class SubstDealiasMap(from: List[Symbol], to: List[Type]) extends SubstMap(from, to) {
+ override def apply(tp: Type): Type = subst(tp.dealias, from, to, this)
+ }
+*/
final class SubstSymMap(from: List[Symbol], to: List[Symbol]) extends DeepTypeMap {
def apply(tp: Type): Type = substSym(tp, from, to, this)
}
diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala
index dcb1ae491..89bef109b 100644
--- a/src/dotty/tools/dotc/core/Types.scala
+++ b/src/dotty/tools/dotc/core/Types.scala
@@ -813,11 +813,15 @@ object Types {
if (from1.isEmpty) ctx.subst1(this, from.head, to.head, null)
else {
val from2 = from1.tail
- if (from2.isEmpty) ctx.subst2(this, from.head, to.head, from.tail.head, to.tail.head, null)
+ if (from2.isEmpty) ctx.subst2(this, from.head, to.head, from1.head, to.tail.head, null)
else ctx.subst(this, from, to, null)
}
}
+/* Not needed yet:
+ final def substDealias(from: List[Symbol], to: List[Type])(implicit ctx: Context): Type =
+ new ctx.SubstDealiasMap(from, to).apply(this)
+*/
/** Substitute all types of the form `PolyParam(from, N)` by
* `PolyParam(to, N)`.
*/