On Sat, Jun 4, 2011 at 12:04 PM, Stéphane Ducasse <stephane.ducasse@inria.fr
wrote:
why would it make sense to send initialize?
Because the system has fucking names. PackageInfo >> classes answers both, traits and classes. I wanted to send #initialize to all classes of a package. Of course, I did a workaround: ((PackageInfo named: 'XXX') classes select: [:each | each isBehavior ]) do: [:each | each initialize] Funny, I reported exactly the same 1 year ago: http://forum.world.st/Bug-PackageInfo-classes-return-also-Traits-tp2165137p2... what a bad memory I have
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
-- Mariano http://marianopeck.wordpress.com