I'm trying to refactor a piece of code using the refactoring browser,
but I've started getting messages telling me that AnObsoleteC3 class does not understand #directlyDefinesMethod. I assume that a changeset I've loaded has removed a class called C3, but that there's still some reference to it hanging around. I guess I need help with two things: - how do I track this thing down? - how do I kill it? I've inspected 'self' from the debugger, and had a poke around some of the pointer tools, but don't really know what I'm doing. Can anyone enlighten me? _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
On Jan 31, 2007, at 20:22 , Michael Davies wrote: > I'm trying to refactor a piece of code using the refactoring browser, > but I've started getting messages telling me that AnObsoleteC3 class > does not understand #directlyDefinesMethod. > > I assume that a changeset I've loaded has removed a class called C3, > but that there's still some reference to it hanging around. I guess I > need help with two things: > - how do I track this thing down? > - how do I kill it? > > I've inspected 'self' from the debugger, and had a poke around some of > the pointer tools, but don't really know what I'm doing. Can anyone > enlighten me? http://wiki.squeak.org/squeak/2631 - Bert - _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
On 31/01/07, Bert Freudenberg <[hidden email]> wrote:
> > On Jan 31, 2007, at 20:22 , Michael Davies wrote: > > > I'm trying to refactor a piece of code using the refactoring browser, > > but I've started getting messages telling me that AnObsoleteC3 class > > does not understand #directlyDefinesMethod. > > > > http://wiki.squeak.org/squeak/2631 > there, and when I get to bringing up the Pointer Finder it says: #ProtoObject -> ProtoObject class subclasses: Array 9: AnObsoleteC3 class So it looks to me as though ProtoObject is the only thing holding a reference to this obsolete class. I inspected it and the subclasses array has 105 members, many of them repeated Obsolete classes: {Object . ObjectOut . ImageSegmentRootStub . MessageCatcher . DynamicBindingsInfo . MaMinimalObject . MAConditionBuilder . MAProxyObject . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . ...etc... } I'm not sure that this is the way things should be! Any pointers for next steps? _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
On Jan 31, 2007, at 22:32 , Michael Davies wrote:
> On 31/01/07, Bert Freudenberg <[hidden email]> wrote: >> >> On Jan 31, 2007, at 20:22 , Michael Davies wrote: >> >> > I'm trying to refactor a piece of code using the refactoring >> browser, >> > but I've started getting messages telling me that AnObsoleteC3 >> class >> > does not understand #directlyDefinesMethod. >> > >> >> http://wiki.squeak.org/squeak/2631 >> > Thanks Bert, that's a very useful reference. I've followed the advice > there, and when I get to bringing up the Pointer Finder it says: > > #ProtoObject -> ProtoObject class > subclasses: Array > 9: AnObsoleteC3 class > > So it looks to me as though ProtoObject is the only thing holding a > reference to this obsolete class. I inspected it and the subclasses > array has 105 members, many of them repeated Obsolete classes: > > {Object . ObjectOut . ImageSegmentRootStub . MessageCatcher . > DynamicBindingsInfo . MaMinimalObject . MAConditionBuilder . > MAProxyObject . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . > AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . > AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . > AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . > ...etc... } > > I'm not sure that this is the way things should be! > > Any pointers for next steps? No idea. If I had to guess then these look like Magma proxies to me. You might get help on the Magma list. http://lists.squeakfoundation.org/mailman/listinfo/magma - Bert - _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
On 31/01/07, Bert Freudenberg <[hidden email]> wrote:
> On Jan 31, 2007, at 22:32 , Michael Davies wrote: [snip] > > ProtoObject subclasses looks like this: > > {Object . ObjectOut . ImageSegmentRootStub . MessageCatcher . > > DynamicBindingsInfo . MaMinimalObject . MAConditionBuilder . > > MAProxyObject . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . > > AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . > > AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . > > AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . > > ...etc... } > > > > I'm not sure that this is the way things should be! > > > > Any pointers for next steps? > > No idea. If I had to guess then these look like Magma proxies to me. > You might get help on the Magma list. > > http://lists.squeakfoundation.org/mailman/listinfo/magma Thanks, but I'm not sure that it's Magma causing the problem: I did a search through references to ProtoObject, and found that TraitsResource (in Traits-Tests) looks like the guilty party - it has three methods setUpTrivialRequiresFixture, setUpTwoLevelRequiresFixture, setUpTranslatingRequiresFixture - these include lines like (for C3, C4, C6): self c3: (self createClassNamed: #C3 superclass: ProtoObject uses: { }). self c3 superclass: nil. Sooo, it doesn't look as though getting rid of these classes will break anything, but I can't see why they're still hanging around! Can anybody help me take this any further or should I be looking to the general list? Thanks, Michael (ps Ramon Leon has got an excellent tool for tidying up an image -- see http://onsmalltalk.com/programming/smalltalk/squeak-smalltalk-image-maintenance/ ) _______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners |
Free forum by Nabble | Edit this page |