Skip to content

Commit 73a9e71

Browse files
committed
accommodates Martin's comments
1 parent cac52ac commit 73a9e71

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

src/reflect/scala/reflect/api/Mirrors.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,8 @@ trait Mirrors { self: Universe =>
242242
* Such a mirror can be used to further reflect against the members of the object
243243
* to get/set fields, invoke methods and inspect inner classes and objects.
244244
*/
245+
// we need a ClassTag here to preserve boxity of primitives
246+
// the class tag lets us tell apart `mirror.reflect(2)` and `mirror.reflect(new Integer(2))`
245247
def reflect[T: ClassTag](obj: T): InstanceMirror
246248

247249
/** Reflects against a static class symbol and returns a mirror

src/reflect/scala/reflect/runtime/JavaMirrors.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,7 @@ trait JavaMirrors extends internal.SymbolTable with api.JavaUniverse { self: Sym
161161
} else if (wannabe.owner == AnyValClass) {
162162
if (!owner.isPrimitiveValueClass && !owner.isDerivedValueClass) ErrorNotMember(wannabe, owner)
163163
} else {
164-
def isMemberOf(wannabe: Symbol, owner: ClassSymbol): Boolean = {
165-
val isNonShadowedMember = owner.info.member(wannabe.name).alternatives.contains(wannabe)
166-
isNonShadowedMember || owner.info.baseClasses.tail.exists(base => isMemberOf(wannabe, base.asClass))
167-
}
168-
if (!isMemberOf(wannabe, owner)) ErrorNotMember(wannabe, owner)
164+
if (!(owner.info.baseClasses contains wannabe.owner)) ErrorNotMember(wannabe, owner)
169165
}
170166
}
171167

0 commit comments

Comments
 (0)