On 20/04/2017 2:47 AM, Dan Smith wrote:

On Apr 19, 2017, at 8:12 AM, Brian Goetz <brian.go...@oracle.com> wrote:

Yep. Also, multiple classes can claim the same nest member class in their 
NestMembers attributes. Not a problem as long as the MemberOfNest attribute (if 
any) of the member class points to a host class that claims it.


At the risk of bikeshedding, I find the names NestMembers and MemberOfNest 
confusing; I keep having to think about the directionality, since they sound so 
similar.  Would be good to find names that have obviously opposite 
directionality.

A not-very-good suggestion (but which illustrates the directionality thing I'm going for) would be 
"NestDeclaration" and "NestUse".  It's pretty clear which is which without 
thinking about it.

Perhaps: NestHost and NestMember ?

I also don't love that "NestMembers" seems more authoritative than it really 
is. (Doesn't get validated, doesn't suggest that other classes can be dynamically added.)

Something like "AllowedInNest" would better convey the actual meaning of that 
attribute.

I don't see how AllowedInNest is any less authoritative sounding than NestMembers. Neither suggests other classes may be added dynamically - nor should they in my opinion. These are static attributes of a classfile defining a relationship as it was known to exist when the classfile was created. Any dynamic means to add to a nest at runtime would not be modifying the classfile NestMembers attribute, but the runtime representation thereof. I suppose InitialNestMembers may capture this more accurately - though it does then beg the question as to how to add the to set later.

Aside: when first discussed in the context of generic specialization I assumed the NestMembers entry would be a "wildcard" which indicated that not only was the named generic type a nestmember, but all specializations thereof (which would presumably have a name derived from the base generic type). But in the context of Lookup.defineClass I have no idea how it is/was expected that nest membership would expand - or how the validity of doing so would be established.

David

—Dan

Reply via email to