aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeOps.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-06-05 18:49:36 +0200
committerMartin Odersky <odersky@gmail.com>2015-06-06 11:05:27 +0200
commit080ed2f3d8b5d8fd249691aacc0fe4f9596bb772 (patch)
tree1fac280aa6832c115037e04178d791cc92f9de25 /src/dotty/tools/dotc/core/TypeOps.scala
parenteaf3095494af2b0ea028452450a6af44e27f5284 (diff)
downloaddotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.tar.gz
dotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.tar.bz2
dotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.zip
Split RefinedThis and SkolemType
SkolemTypes need to behave differently form RefinedThis types in TypeMap and TypeAccumulator. For skolem types these should follow through to the underlying type. For RefinedThis types, these need to do nothing, in order not to start an infinite recursion.
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeOps.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeOps.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/TypeOps.scala b/src/dotty/tools/dotc/core/TypeOps.scala
index acbd5b6f0..a01f8af9f 100644
--- a/src/dotty/tools/dotc/core/TypeOps.scala
+++ b/src/dotty/tools/dotc/core/TypeOps.scala
@@ -12,6 +12,9 @@ import ast.tpd._
trait TypeOps { this: Context => // TODO: Make standalone object.
+ final def asSeenFrom(tp: Type, pre: Type, cls: Symbol): Type =
+ asSeenFrom(tp, pre, cls, null)
+
final def asSeenFrom(tp: Type, pre: Type, cls: Symbol, theMap: AsSeenFromMap): Type = {
def toPrefix(pre: Type, cls: Symbol, thiscls: ClassSymbol): Type = /*>|>*/ ctx.conditionalTraceIndented(TypeOps.track, s"toPrefix($pre, $cls, $thiscls)") /*<|<*/ {