On Wed, Apr 18, 2012 at 11:27 PM, Marcus Denker <[email protected]>wrote:

>
> On Apr 18, 2012, at 11:49 PM, Mariano Martinez Peck wrote:
>
> > Hi guys. I am running some tests with Fuel. In such test I create
> classes and traits. The problem is that I get a: "MessageNotUnderstood:
> receiver of "isProvided" is nil"
> > Everything starts (it seems) when I do #addToComposition:   and I
> receive a MethodRecategorized event and RPackage calls
> #systemMethodRecategorizedActionFrom:
> > There, the problem is with  ->  method isProvidedByATrait
> > the class of the method is 'AnObsoleteClassForTestToBeDeleted1'
> > And the error finally arrives to #providedLocatedMethod where it does
> "each method isProvided"  the problem is that "each" is a
> RGMethodDefinition with everything in nil except 'name'  and 'annotations'.
> > I attach PharoDebug.log.
> > Any help is really appreaciated.
>
> we should fix this bug:
>
> http://code.google.com/p/pharo/issues/detail?id=4750
>
> it used to be that methods did not know their name, thus MethodReference
> had to be used for many things.
> This combined with not sharing compiledMethods means that traits can use
> methods
> directly.
>

I'm very worried by this.  This misses the fact that a MethodReference and
a CompiledMethod are two different things *because* methods can be
redefined.  So if one holds onto a method that gets redefined one can have
more than one method with the same name.  However, a MethodReference always
refers to the method that is currently installed.  In this way a
MethodReference is a pointer, a coordinate, but a method is a referent.
 Personally I think the distinction is important; browser tools should use
references, not referents.


>        Marcus
>
>
> --
> Marcus Denker -- http://marcusdenker.de
>
>
>


-- 
best,
Eliot

Reply via email to