On Oct 11, 2008, at 09:39 , Marcus Denker wrote:
On 10.10.2008, at 14:30, Stéphane Ducasse wrote:
I had a look and I like it, so I'll try to make your tests pass ;).
I don't agree with the following, though:
self assert: (D>>#c3) origin = D. "this is a question because it could be "
here I think it should be Trait2, not D. The alias c3->c2 does not redefine the method in the class; the method still originates in Trait2.
Not really :) we discussed a lot with and I think that I have a point :) the point is that since Compiled Method are copied
But even non-aliased methods are copied...
so c3 is really different from c2 and c3 is not defined in Trait2 but this is realy because there is D that C3 exists. so tell me what you think.
The problem with making the origin D is that then the relationship "all methods that have the origin class D are local methdos in class D" is not true anymore. marcus I think it is more important to have this true for classes then for Traits.
I agree with Marcus. The origin of a method for me means the behavior (trait or class) in which a method is originally defined. That is, if I want to modify the method without overriding it, this is the place to do it. Therefore, even though D introduces a new name for the method, the method still originates in Trait2. Adrian