Skip to content

Commit e946936

Browse files
committed
Generalize member computation for package members
Previously, package-object local definitions won over global ones. It's more systematic to form the union of both. Also, absent dummy modules or classes have to be ignored in order not to poison the union. These changes would have made sense also for old-style package objects, btw.
1 parent 444cffa commit e946936

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

compiler/src/dotty/tools/dotc/core/SymDenotations.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1991,7 +1991,9 @@ object SymDenotations {
19911991
if (pcls.isCompleting) recur(pobjs1, acc)
19921992
else recur(pobjs1, acc.union(pcls.computeNPMembersNamed(name)))
19931993
case nil =>
1994-
if (acc.exists) acc else super.computeNPMembersNamed(name)
1994+
val directMembers = super.computeNPMembersNamed(name)
1995+
if (acc.exists) acc.union(directMembers.filterWithPredicate(!_.symbol.isAbsent))
1996+
else directMembers
19951997
}
19961998
if (symbol `eq` defn.ScalaPackageClass) {
19971999
val denots = super.computeNPMembersNamed(name)

0 commit comments

Comments
 (0)