Lovely Marcus, thank you.

> On 24 Sep 2015, at 09:59, Marcus Denker <[email protected]> wrote:
> 
>> 
>> On 22 Sep 2015, at 17:23, [email protected] wrote:
>> 
>> Hi Marcus,
>> 
>> I am finally playing with Reflectivity. In the first place, thanks a lot for 
>> this contribution!
>> 
>> I am wondering what is the ‘correct’ way to ‘remove’ a MetaLink. Is it 
>> enough to call #uninstall on the MetaLink or should I also recompile the 
>> class/method where the link is installed?
>> 
>> I spotted a problem with the control #after. If you try to pass #arguments 
>> to the meta, an error is returned. To reproduce: 
>> http://ws.stfx.eu/ONC4K9KQRTNQ
>> 
>> Is this behavior somewhat desired, or is a bug?
>> 
> Hello, I fixed it:
> 
>       
> https://pharo.fogbugz.com/f/cases/16629/fix-after-on-method-with-arguments
> 
> You example is now working, I added it as this test:
> 
> testReifyMethodArgsAfter
>       | methodNode link instance|
>       methodNode := (ReflectivityExamples>>#exampleWithArg:) ast.
>       link := MetaLink new 
>               metaObject: self; 
>               selector: #tagExec:;
>               control: #after;
>               arguments: #(arguments).
>       methodNode link: link.
>       self assert: methodNode hasMetalink.
>       self assert: (ReflectivityExamples>>#exampleWithArg:) class = 
> ReflectiveMethod.
>       self assert: (tag isNil).
>       instance := ReflectivityExamples new .
>       self assert: ((instance exampleWithArg: 3) = 5).
>       self assert: (tag = #(3)).
>       link uninstall. 
> 
> 
> I will integrate this fix and then write more tests (e.g. I think there are 
> still problems with an #after on a method that defines temps,
> but it will be easy to fix).
> 
>       Marcus

Reply via email to