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
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to