diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-09-17 17:48:10 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-09-17 18:08:38 +0200 |
commit | f75432fb31807938db2e9f78980fa574f88cd535 (patch) | |
tree | dafbf90aef90a80fb921ae53ea4ab3b71c4319b3 | |
parent | ab6766c0dc5f47ef8e5a92c96707d1c3d958f255 (diff) | |
download | dotty-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.scala | 5 |
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}") } |