Booh. So far for the traits implementation of AspectMaps then :-( I dont want to break the modularity of the AspectMaps package by requireing a special version of other packages for the traits to work. Or can we make a traits installer, that performs the redefinition of target classes? First check if the target classes already declare a uses:, and if not add it. Sounds like simple metaprogramming ... Any comments on this 'solution'? On 28 Apr 2010, at 01:56, Stéphane Ducasse wrote:
so far (and similarly to instance variable) you cannot with the current definition syntax declare a trait (add instance) to a class from a package that does not define the class. You can do that in the initialize of a class loaded in a package but there is no think like
MyClass addInstanceVariable: 'x' MyOtherClass addTrait:
at the similar syntax level than
FAMIXScopingEntity subclass: #FAMIXNamespace uses: TAMStructuralZoom instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Famix-Core'
this is why one day packages will have to be a bit better supported and more important we will have fix the "semantics" of changeset to be something than a simple side effect of 'oh this is easy' just save the class def and the method definition (because a class is a complex object).
-- Johan Fabry jfabry@dcc.uchile.cl - http://dcc.uchile.cl/~jfabry PLEIAD Lab - Computer Science Department (DCC) - University of Chile