Trouble removing an AnObsoleteC3 Class

Michael Davies mykdavies+squeak at gmail.com
Thu Feb 1 17:33:29 UTC 2007


Hi all,

I posted this to the beginners list, and got some help understanding
the problem, but I didn't get to a solution - can anyone help?

I was playing with the test runner and one of the tests seems to have
left many Obsolete classes hanging around that I'm unable to remove;
this means that I'm having problems using the Refactoring Browser. In
order to track the classes down I followed the hints on
http://wiki.squeak.org/squeak/2631 ; when I got to bringing up the
Pointer Finder it said:

#ProtoObject -> ProtoObject class
subclasses: Array
9: AnObsoleteC3 class

I inspected protoObject and the subclasses array has 105 members, many
of them repeated:

{Object . ObjectOut . ImageSegmentRootStub . MessageCatcher .
DynamicBindingsInfo . MaMinimalObject . MAConditionBuilder .
MAProxyObject . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 .
AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 .
AnObsoleteC4 . AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 .
AnObsoleteC6 . AnObsoleteC3 . AnObsoleteC4 . AnObsoleteC6 .
...etc... }

This didn't look good, so I then 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.

Another run of the Traits-Tests suite left me with yet more of these
obsolete classes. I have absolutely no idea how to get rid of these
classes. Can anybody help me take this any further?



More information about the Squeak-dev mailing list