On Sun, Jan 26, 2014 at 4:07 PM, Tudor Girba <[email protected]> wrote:
> I looked more into it, and here is a smaller example:
> Gofer new
> smalltalkhubUser: 'Moose' project: 'MooseAlgos';
> package: 'Moose-Algos-Graph';
> load
>
> This one does open the debugger, so the other emergency evaluator issue
> comes from somewhere else.
>
> The problem seems to come from a Trait being defined in this package, and
> loading this trait triggers ClassModifiedClassDefinition which stumbles in
>
> ClassModifiedClassDefinition>>isPropagation
> "If there is not slot changes, I can assume that there is a propagation
> (the change is in one of the superclasses)"
> self oldClassDefinition layout ifNil: [ ^ false ].
> ^ self newClassDefinition layout instanceVariables = self
> oldClassDefinition layout instanceVariables
>
>
Despite of the name of ClassModifiedClassDefinition, it is announced also
when traits are modified. I don't know if Trait should implement #layout...
but it is not.
I reproduced using this:
Trait named: #DDDD.
Trait
named: #DDDD
uses: {TSortable}
category: 'a'.
I guess that ClassModifiedClassDefinition is not only being announced when
a class changed but also it is being announced when its superclass changed
(in the case, "propagated"). So the purpose of #isPropagation is the check
that. But I'm not sure this announcement should be done for the
subclasses...