aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/SymDenotations.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-04-18 17:35:43 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-05-08 21:48:08 +0200
commita8894ed954e16b481379f09ce7e04342bd9b34f2 (patch)
treebf8b0b293ec43350d79d6ce5c52f3b7278d12c1a /src/dotty/tools/dotc/core/SymDenotations.scala
parent92c02ee9d514c197221fd4c4a027fe0e70e081f2 (diff)
downloaddotty-a8894ed954e16b481379f09ce7e04342bd9b34f2.tar.gz
dotty-a8894ed954e16b481379f09ce7e04342bd9b34f2.tar.bz2
dotty-a8894ed954e16b481379f09ce7e04342bd9b34f2.zip
Fixing stillValid code
We need to take into account that symbols can can have non-class owners yet still be valid. Previously such symbols were treated as invalid. Now they are valid if their owners are valid. The commit supersedes 29976d7922c5c3e99f0469e3db1 which got reverted.
Diffstat (limited to 'src/dotty/tools/dotc/core/SymDenotations.scala')
-rw-r--r--src/dotty/tools/dotc/core/SymDenotations.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/SymDenotations.scala b/src/dotty/tools/dotc/core/SymDenotations.scala
index 9cf06ec47..c7e7dc50d 100644
--- a/src/dotty/tools/dotc/core/SymDenotations.scala
+++ b/src/dotty/tools/dotc/core/SymDenotations.scala
@@ -46,8 +46,9 @@ trait SymDenotations { this: Context =>
case ClassInfo(_, _, _, _, selfInfo) => selfInfo == denot.symbol
case _ => false
}
- stillValid(owner) && owner.isClass && (
- (owner.decls.lookupAll(denot.name) contains denot.symbol)
+ stillValid(owner) && (
+ !owner.isClass
+ || (owner.decls.lookupAll(denot.name) contains denot.symbol)
|| isSelfSym
)
} catch {