Hi guys. We were discussing in
http://code.google.com/p/pharo/issues/detail?id=5748
The thing is that Traits are depenending on Ring. And I don't really like
that. If you do a simple #addToComposition:  you end up calling Ring.

The problematic method is:

TraitDescription >> #collectMethodsFor: aSelector into: methodDescription

    (self includesSelector: aSelector) ifTrue: [
        methodDescription addLocatedMethod: (
            RGMethodDefinition
                realClass: self
                selector: aSelector)]


which uses RGMethodDefinition.

Previously (before Ring) it was using LocatedMethod (which was removed)

collectMethodsFor: aSelector into: methodDescription
    (self includesSelector: aSelector) ifTrue: [
        methodDescription addLocatedMethod: (
            LocatedMethod
                location: self
                selector: aSelector)]


I attach a PharoDebug.log with a halt in #collectMethodsFor:into:  so that
you can see all the stack.

This is the reason why FuelPackageLoader depends on Ring, just for the
traits when we do the #addToComposition:.

So...what do we do?  we just accept the depedency?

cheers


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to