Hi Adrian and all traits friends, The test TraitTest>>testLocalMethodWithSameCodeInTrait is yellow. I guess this is because there is no sharing of compiled methods. This test is therefore not irrelevant right? Can be safely removed? Something slightly more technical. What providedLocatedMethod should return? What a LocatedMethod should refer to? A location of a method in a trait, or where the method is defined for the first time? An example. Let's assume I have: tr1 := self createTraitNamed: #T1 uses: {}. tr2 := self createTraitNamed: #T2 uses: {tr1}. tr3 := self createTraitNamed: #T3 uses: {tr1}. tr23 := self createTraitNamed: #T23 uses: {tr3 + tr2}. tr1 compile: 'foo ^ 4'. aMethodDescription := tr23 traitComposition methodDescriptionForSelector: #foo. self assert: (aMethodDescription locatedMethods size = 2). self assert: (aMethodDescription locatedMethods includes: (LocatedMethod location: tr2 selector: #foo)). self assert: (aMethodDescription locatedMethods includes: (LocatedMethod location: tr3 selector: #foo)). The last two assertion pass. However, is it that intended? I would have expected only one locatedMethod, which is (LocatedMethod location: tr1 selector: #foo), however I am not sure. locatedMethods is tested nowhere and there is no documentation. Cheers, Alexandre On 10 Apr 2009, at 14:32, Adrian Lienhard wrote:
Yes, this should not be a conflict. I think I had implemented it that way. Probably it was broken in the recent refactoring that I did for method sharing...
Adrian
On Apr 10, 2009, at 13:47 , Alexandre Bergel wrote:
Hi All,
Apparently, the way a conflict may be triggered is slightly different from what is described in the toplas paper. in the paper, it is said that a compiled method that is inherited from more than one path does not trigger a conflict. With the current implementation this trigger a conflict.
For example: T1 defines foo T2 uses T1 T3 uses T1 T23 uses T2 + T3 C uses T23
C new foo => conflict error.
One would expect no conflict since there is only one definition of foo Just wondering...
Alexandre
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.