Nile makes #testProvidedMethodBindingsWithConflicts fail in 3.9

Daniel Vainsencher danielv at tx.technion.ac.il
Sat Jun 9 14:38:36 UTC 2007


Hi Damien,


I think I have found the bug, and it is in the following method:

TraitMethodDescription>>requiredMethodForArguments: aNumber ifAbsentPut: 
aBlock
    "ConflictMethods is an array that caches the generated conflict
    methods. At position 1: binary method; 2: unary method;
    n+2: keywordmethod with n arguments."

    ^(RequiredMethods at: aNumber)
        ifNil: [ConflictMethods at: aNumber put: aBlock value]


This results in the following easy to diagnose symptom:


Print-it:


((TraitMethodDescription classPool at: #ConflictMethods) at: 2) 
decompileString

gives:

 'm11
    self requirement'

instead of:

 'm11
    self traitConflict'


But I'm a bit rusty, so please double check me, and then send in the 
trivial fix. Ah, the wonders of caches/copy&paste...

Daniel


Damien Cassou wrote:

> 2007/6/9, stephane ducasse <stephane.ducasse at free.fr>:
>> can you add that to mantis and add also the problems you describe in
>> the paper (about self requirement) taking precedence on ...
>
> http://bugs.squeak.org/view.php?id=6533
> http://bugs.squeak.org/view.php?id=6534
>




More information about the Squeak-dev mailing list