[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
magically disappearing accessor function
Date: Thu, 6 Feb 1992 10:50 EST
From: dmitchell@trc.amoco.com (Donald H. Mitchell)
Using CLOS
One of my guys created a class with a slot 'name and an accessor 'name. He then created
another class with another of the ubiquitous slot 'name and accessor 'name. He then
exported 'name. Of course, other packages that use his package also define classes with
slots using the ubiquitous identifier. Now his symbol reliably gets uninterned as a
side-effect someplace. Is there anyway to track down where this symbol is being
uninterned? (I've heard claims that the unintern-ment occurred even when he wasn't
exporting the symbol.)
You could (trace unintern).
If I re-intern the un-intern'd symbol (getting it by :show clos methods ...), I can
reliably use the accessor; however, all the development environment hooks don't agree on
it. For example, :edit definition gets very confused and will only show me one, claims
there are many others, but refuses to show them. If I describe the symbol and get the
generic function object from it, however, everything looks fine (including what looks like a
compilation of all the users of 'name regardless of package as long as their home package
uses the unintern'd symbol's package.)
It's hard to say what's going on. This could have something to do with
the precise time that it's getting uninterned relative to the definition
of the other methods. Their source information may be getting hung off
other symbols.
But if you fix whatever is uninterning the symbol, I think this should
be moot.
barmar