Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 23a43f2

Browse files
committed
Explicit excluded and required flags
1 parent 165a683 commit 23a43f2

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,10 @@ abstract class BCodeHelpers extends BCodeIdiomatic {
842842
// * Using `exitingUncurry` (not `enteringErasure`) because erasure enters bridges in traversal,
843843
// not in the InfoTransform, so it actually modifies the type from the previous phase.
844844
// Uncurry adds java varargs, which need to be included in the mirror class.
845-
val members = exitingUncurry(moduleClass.info.membersBasedOnFlags(BCodeHelpers.ExcludedForwarderFlags, symtab.Flags.METHOD))
845+
val members = exitingUncurry {
846+
moduleClass.info
847+
.membersBasedOnFlags(excluded = BCodeHelpers.ExcludedForwarderFlags, required = symtab.Flags.METHOD)
848+
}
846849
for (m <- members) {
847850
val excl = m.isDeferred || m.isConstructor || m.hasAccessBoundary ||
848851
{ val o = m.owner; (o eq ObjectClass) || (o eq AnyRefClass) || (o eq AnyClass) } ||

src/reflect/scala/reflect/internal/Definitions.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1054,7 +1054,7 @@ trait Definitions extends api.StandardDefinitions {
10541054
// Scopes()
10551055
// must filter out "universal" members (getClass is deferred for some reason)
10561056
val deferredMembers =
1057-
tpSym.info.membersBasedOnFlags(excludedFlags = BridgeAndPrivateFlags, requiredFlags = METHOD)
1057+
tpSym.info.membersBasedOnFlags(excluded = BridgeAndPrivateFlags, required = METHOD)
10581058
.toList
10591059
.filter(mem => mem.isDeferred && !isUniversalMember(mem))
10601060

src/reflect/scala/reflect/internal/Symbols.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3569,7 +3569,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
35693569
def implicitMembers: Scope = {
35703570
val tp = info
35713571
if ((implicitMembersCacheKey1 ne tp) || (implicitMembersCacheKey2 ne tp.decls.elems)) {
3572-
implicitMembersCacheValue = tp.membersBasedOnFlags(BridgeFlags, IMPLICIT)
3572+
implicitMembersCacheValue = tp.membersBasedOnFlags(excluded = BridgeFlags, required = IMPLICIT)
35733573
implicitMembersCacheKey1 = tp
35743574
implicitMembersCacheKey2 = tp.decls.elems
35753575
}

src/reflect/scala/reflect/internal/Types.scala

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -593,26 +593,27 @@ trait Types
593593
* Members appear in linearization order of their owners.
594594
* Members with the same owner appear in reverse order of their declarations.
595595
*/
596-
def members: Scope = membersBasedOnFlags(0, 0)
596+
def members: Scope = membersBasedOnFlags(excluded = 0, required = 0)
597597

598598
/** A list of all non-private members of this type (defined or inherited) */
599-
def nonPrivateMembers: Scope = membersBasedOnFlags(BridgeAndPrivateFlags, 0)
599+
def nonPrivateMembers: Scope = membersBasedOnFlags(excluded = BridgeAndPrivateFlags, required = 0)
600600

601601
/** A list of all non-private members of this type (defined or inherited),
602602
* admitting members with given flags `admit`
603603
*/
604-
def nonPrivateMembersAdmitting(admit: Long): Scope = membersBasedOnFlags(BridgeAndPrivateFlags & ~admit, 0)
604+
def nonPrivateMembersAdmitting(admit: Long): Scope =
605+
membersBasedOnFlags(excluded = BridgeAndPrivateFlags & ~admit, required = 0)
605606

606607
/** A list of all implicit symbols of this type (defined or inherited) */
607608
def implicitMembers: Scope = {
608609
typeSymbolDirect match {
609610
case sym: ModuleClassSymbol => sym.implicitMembers
610-
case _ => membersBasedOnFlags(BridgeFlags, IMPLICIT)
611+
case _ => membersBasedOnFlags(excluded = BridgeFlags, required = IMPLICIT)
611612
}
612613
}
613614

614615
/** A list of all deferred symbols of this type (defined or inherited) */
615-
def deferredMembers: Scope = membersBasedOnFlags(BridgeFlags, DEFERRED)
616+
def deferredMembers: Scope = membersBasedOnFlags(excluded = BridgeFlags, required = DEFERRED)
616617

617618
/** The member with given name,
618619
* an OverloadedSymbol if several exist, NoSymbol if none exist */
@@ -649,8 +650,8 @@ trait Types
649650
/** Members excluding and requiring the given flags.
650651
* Note: unfortunately it doesn't work to exclude DEFERRED this way.
651652
*/
652-
def membersBasedOnFlags(excludedFlags: Long, requiredFlags: Long): Scope =
653-
findMembers(excludedFlags, requiredFlags)
653+
def membersBasedOnFlags(excluded: Long, required: Long): Scope =
654+
findMembers(excludedFlags = excluded, requiredFlags = required)
654655

655656
def memberBasedOnName(name: Name, excludedFlags: Long): Symbol =
656657
findMember(name, excludedFlags, 0, stableOnly = false)

0 commit comments

Comments
 (0)