File tree 1 file changed +10
-4
lines changed
compiler/src/dotty/tools/dotc/core
1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -1726,11 +1726,16 @@ object SymDenotations {
1726
1726
}
1727
1727
1728
1728
/** Enter a symbol in given `scope` without potentially replacing the old copy. */
1729
- def enterNoReplace (sym : Symbol , scope : MutableScope )(implicit ctx : Context ): Unit = {
1729
+ def enterNoReplace (sym : Symbol , scope : MutableScope )(given Context ): Unit =
1730
1730
scope.enter(sym)
1731
- if (myMemberCache != null ) myMemberCache.invalidate(sym.name)
1732
- if (! sym.flagsUNSAFE.is(Private )) invalidateMemberNamesCache()
1733
- }
1731
+ invalidateMemberCaches(sym)
1732
+
1733
+ def invalidateMemberCaches (sym : Symbol )(given Context ): Unit =
1734
+ if myMemberCache != null then myMemberCache.invalidate(sym.name)
1735
+ else if ! sym.flagsUNSAFE.is(Private ) then
1736
+ invalidateMemberNamesCache()
1737
+ if sym.owner.isPackageObject then
1738
+ sym.owner.owner.asClass.invalidateMemberCaches(sym)
1734
1739
1735
1740
/** Replace symbol `prev` (if defined in current class) by symbol `replacement`.
1736
1741
* If `prev` is not defined in current class, do nothing.
@@ -2123,6 +2128,7 @@ object SymDenotations {
2123
2128
if (pcls.isCompleting) recur(pobjs1, acc)
2124
2129
else {
2125
2130
val pmembers = pcls.computeNPMembersNamed(name).filterWithPredicate { d =>
2131
+ // Drop members of `Any` and `Object`
2126
2132
val owner = d.symbol.maybeOwner
2127
2133
(owner ne defn.AnyClass ) && (owner ne defn.ObjectClass )
2128
2134
}
You can’t perform that action at this time.
0 commit comments