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