On Fri, Mar 29, 2013 at 4:38 PM, Paul Phillips <notifications@github.com>wrote:

> In src/reflect/scala/reflect/internal/Symbols.scala:
>
> > @@ -1033,16 +1033,24 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
> >       */
> >      final def fullName(separator: Char): String = fullNameAsName(separator).toString
> >
> > -    /** Doesn't drop package objects, for those situations (e.g. classloading)
> > -     *  where the true path is needed.
> > -     */
> > -    private def fullNameInternal(separator: Char): Name = (
> > -      if (isRoot || isRootPackage || this == NoSymbol) name
> > -      else if (owner.isEffectiveRoot) name
> > -      else ((effectiveOwner.enclClass.fullNameAsName(separator) append separator): Name) append name
> > -    )
> > +    private def properEnclClass = effectiveOwner.enclClass
>
> Does this amount to "effectiveOwner, but skip local dummies" the same way
> that effectiveOwner is "owner, but skip package objects" ? Like
> dealiasWidenAndChaseUpperBounds, further steps down this road threaten a
> compositional nightmare. Is there anyone who can better justify the need
> for and operation of local dummies in the first place? It would be far
> better if we didn't have this fluctuating owner chain which requires manual
> management of what should be jumped.
>
I think this coment is obsolete, isn't it?

> —
> Reply to this email directly or view it on GitHub<https://github.com/scala/scala/pull/2334/files#r3585218>
> .
>