Did you look at TraitBehavior>>#initialize and Behavior>>#initialize? They both clear the method dictionary, reset superclass, clear users and traits, etc.
What you observe is what is implemented in these methods. Normally you should never call class-side initialize methods manually, the system does this for you if necessary. Lukas On 4 June 2011 12:04, Stéphane Ducasse <[email protected]> wrote: > why would it make sense to send initialize? > > Stef > > On Jun 4, 2011, at 11:42 AM, Mariano Martinez Peck wrote: > >> 1) Browse the example Trait1 and you will see methods like: >> Trait1 >> c >> >> ^ 'Trait1>>c' >> >> and: >> >> Trait1 >> c1 >> >> ^ 'Trait1>>c1' >> >> >> 2) Now, execute "Trait1 initialize" >> 3) BOOM. Trait1 has no longo any method. In the browse they are shown like: >> >> Trait1 >> c >> "This method does not exist." >> self halt. >> >> Trait2 >> c1 >> "This method does not exist." >> self halt. >> >> .... >> >> If I see Trait >> initialize >> super initialize. >> classTrait := ClassTrait for: self >> >> >> and then ClassTrait for: >> "This method does not exist." >> self halt. >> >> >> wtf ?? that method is removed? this even happens before doing Trait1 >> initialize. >> >> so...any idea? >> >> >> -- >> Mariano >> http://marianopeck.wordpress.com >> > > > -- Lukas Renggli www.lukas-renggli.ch
