Yet Another Wierdness

Chris Reuter cgreuter at calum.csclub.uwaterloo.ca
Tue Jun 16 15:26:02 UTC 1998



Hi again,

Yet another unexplained behaviour popped up last night.  I was
debugging some classes I'd written, the nature of the bug being that
some instances weren't being properly initialized.

The cause of the bug was that metaclass inheritance didn't parallel
class inheritance.  That is, for classes P, M and H[1] with the following
subclass relationship:

	Object --> P --> M --> R

The metaclass relationship looked like:

        Object class --> M class --> R class,

I tried recompiling P (by adding an instance variable and accepting
it) but that didn't do anything.  Eventually, I just edited the
metaclass with an inspector and set the superClass instance variable
correctly.

The only clue I have is that when I last filed in this project (when
upgrading from 1.31 to 2.0), M had become a subclass of nil for some
reason--my guess is that the order of fileOut caused it to be loaded
before its superclass.

At any rate, I'm not sure whether this is serious, but I thought it
might be worthwhile mentioning.  Is this problem known?  Is it
serious?  Is my manual fix all that's required?


		       --Chris



[1] Single-letter names used for brevity--my coding style is slightly
better than that.  :)





More information about the Squeak-dev mailing list