aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-09-17 17:48:10 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-09-17 18:08:38 +0200
commitf75432fb31807938db2e9f78980fa574f88cd535 (patch)
treedafbf90aef90a80fb921ae53ea4ab3b71c4319b3
parentab6766c0dc5f47ef8e5a92c96707d1c3d958f255 (diff)
downloaddotty-f75432fb31807938db2e9f78980fa574f88cd535.tar.gz
dotty-f75432fb31807938db2e9f78980fa574f88cd535.tar.bz2
dotty-f75432fb31807938db2e9f78980fa574f88cd535.zip
Allow skipping Label's in owner chains
-rw-r--r--src/dotty/tools/dotc/transform/TreeChecker.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/TreeChecker.scala b/src/dotty/tools/dotc/transform/TreeChecker.scala
index 50d409942..a30ff3296 100644
--- a/src/dotty/tools/dotc/transform/TreeChecker.scala
+++ b/src/dotty/tools/dotc/transform/TreeChecker.scala
@@ -85,10 +85,11 @@ class TreeChecker {
}
private def checkOwner(tree: untpd.Tree)(implicit ctx: Context): Unit = {
- def ownerMatches(symOwner: Symbol, ctxOwner: Symbol): Boolean =
+ def ownerMatches(symOwner: Symbol, ctxOwner: Symbol): Boolean = {
symOwner == ctxOwner ||
- ctxOwner.isTerm && !(ctxOwner is Method | Lazy | Mutable) &&
+ ctxOwner.isTerm && (!(ctxOwner is Method | Lazy | Mutable) || (ctxOwner is Label)) &&
ownerMatches(symOwner, ctxOwner.owner)
+ }
assert(ownerMatches(tree.symbol.owner, ctx.owner),
i"bad owner; ${tree.symbol} has owner ${tree.symbol.owner}, expected was ${ctx.owner}")
}