aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/TreeChecker.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-12-12 17:39:00 +0100
committerMartin Odersky <odersky@gmail.com>2014-12-12 17:39:13 +0100
commitc96482cfd99c04855b48dc146c9e2daf0cbaef87 (patch)
tree7fad356c30b21e4f834ff3f3a3486f79ae8c647f /src/dotty/tools/dotc/transform/TreeChecker.scala
parent699e0d829c7bc3e3bf82776b311d9dd43aa379ac (diff)
downloaddotty-c96482cfd99c04855b48dc146c9e2daf0cbaef87.tar.gz
dotty-c96482cfd99c04855b48dc146c9e2daf0cbaef87.tar.bz2
dotty-c96482cfd99c04855b48dc146c9e2daf0cbaef87.zip
Fixed narrowLiftedOwner in LambdaLift
A lot of cases were missing before and caused failures in the newly added test in TreeChecker#typedThis. Now we assure that all this references appear inside the referenced class.
Diffstat (limited to 'src/dotty/tools/dotc/transform/TreeChecker.scala')
-rw-r--r--src/dotty/tools/dotc/transform/TreeChecker.scala7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/transform/TreeChecker.scala b/src/dotty/tools/dotc/transform/TreeChecker.scala
index 5c45f4fc5..652536011 100644
--- a/src/dotty/tools/dotc/transform/TreeChecker.scala
+++ b/src/dotty/tools/dotc/transform/TreeChecker.scala
@@ -154,6 +154,13 @@ class TreeChecker {
super.typedSelect(tree, pt)
}
+ override def typedThis(tree: untpd.This)(implicit ctx: Context) = {
+ val res = super.typedThis(tree)
+ val cls = res.symbol
+ assert(cls.isStaticOwner || ctx.owner.isContainedIn(cls), i"error while typing $tree, ${ctx.owner} is not contained in $cls")
+ res
+ }
+
private def checkOwner(tree: untpd.Tree)(implicit ctx: Context): Unit = {
def ownerMatches(symOwner: Symbol, ctxOwner: Symbol): Boolean =
symOwner == ctxOwner ||