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