diff options
author | Martin Odersky <odersky@gmail.com> | 2014-12-12 17:39:00 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-12-12 17:39:13 +0100 |
commit | c96482cfd99c04855b48dc146c9e2daf0cbaef87 (patch) | |
tree | 7fad356c30b21e4f834ff3f3a3486f79ae8c647f /src/dotty/tools/dotc/transform/TreeChecker.scala | |
parent | 699e0d829c7bc3e3bf82776b311d9dd43aa379ac (diff) | |
download | dotty-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.scala | 7 |
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 || |