John Rose to the rescue... by reversing the order of foldArguments,
you can post-process the arguments *and* return value of the target.
See the other thread for an example.

SOLVED. Put it in the cookbook, Rémi! (or allow me to put it in the cookbook)

- Charlie

On Fri, Jun 10, 2011 at 6:25 PM, Charles Oliver Nutter
<head...@headius.com> wrote:
> On Fri, Jun 10, 2011 at 6:14 PM, Robert Fischer <smokejumpe...@gmail.com> 
> wrote:
>> How is the assignment itself implemented in terms of MethodHandles?
>> What do you have to work with?
>>
>> What I'm thinking is that you could implement the side-effect as part
>> of a MethodHandles#filterArguments call (one that doesn't actually
>> change the argument)?  Just wrap that around a MethodHandles#identity
>> call. Won't that do it for you?
>
> filterArguments replaces the argument at the given offset with the
> result of the filter handle. It doesn't allow you to alter the return
> value of the target. filterReturn allows you to change the return
> value, but does not have access to arguments.
>
>> If you have the assignment implementation, but it returns
>> null/void/whatever, then use MethodHandles#foldArguments to insert a
>> second copy in front, and have the assignment be the map to the right.
>> I think that'll work.
>
> foldArguments reinserts the results of passing all arguments to the
> folding handle back into the parameter list, but does not do anything
> to return value.
>
> So far I've not been able to come up with a way to alter the return
> value using the argument values. It only seems possible to do that
> with an intermediate Java call that wraps everything else, and I stil
> believe that defeats inlining the rest of the chain.
>
> - Charlie
>

-- 
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to jvm-languages@googlegroups.com.
To unsubscribe from this group, send email to 
jvm-languages+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en.

Reply via email to