Hi, I think I found a simple solution: the ability to reference any variable. https://pharo.fogbugz.com/f/cases/19467/Metalinks-support-accessing-variables-for-arguments
This test shows how to use it for a temp: testAccessTemp | varNode instance | varNode := (ReflectivityExamples>>#exampleAssignment) ast body statements second. link := MetaLink new metaObject: self; selector: #tagExec:; arguments: {RBVariableNode named: #temp}. varNode link: link. self assert: varNode hasMetalink. self assert: (tag isNil). instance := ReflectivityExamples new . self assert: (instance exampleAssignment = 3). self assert: (tag = 3). I have not yet tested it for any other example, but it should work for your case, too, which would look like this: MetaLink new metaObject: [ :surface :trachelCanvas | surface clear: trachelCanvas color. ]; selector: #value:value:; arguments: {RBVariableNode named: #surface . RBVariableNode named: #trachelCanvas }. control: #instead. > On 12 Dec 2016, at 09:36, Marcus Denker <marcus.den...@inria.fr> wrote: > > Hello, > > Not yet. It should be easy to add if we find a good API for it… > > I will work on it this week (I have blocked some time for RF related hacking). > > e.g I think we have to extend the syntax for reifications to use classes. > > something like: > > arguments: {RFTempReification named: #trachelCanvas}; > > The current symbols then would be the same as using > > RFReification named: #object > > But subclasses can be used directly and parametrized. > > Marcus > >> On 5 Dec 2016, at 20:42, Peter Uhnak <i.uh...@gmail.com> wrote: >> >> Hi, >> >> what is the best way to access variables from within a metalink? >> >> for example I have a message send `surface clear` and I want to change it to >> `surface clear: trachelCanvas color`. >> >> I can use #instVarNamed: >> >> ``` >> MetaLink new >> metaObject: [ :object | >> (object instVarNamed: #surface) clear: (object instVarNamed: >> #trachelCanvas) color. >> ]; >> selector: #value:; >> arguments: #(object); >> control: #instead. >> ``` >> >> but the above isn't exactly nice, plus it wouldn't work with temporary >> variables. >> >> Thanks, >> Peter >> >