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 <stephane.ducasse@inria.fr> 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