[9] RFR (S) 8050173: Generalize BMH.copyWith API to all method handles
Paul Sandoz
paul.sandoz at oracle.com
Wed Jul 16 08:50:59 UTC 2014
On Jul 14, 2014, at 4:37 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
> http://cr.openjdk.java.net/~vlivanov/8050173/webrev.00/
> https://bugs.openjdk.java.net/browse/JDK-8050173
>
> Added j.l.i.MethodHandle.copyWith(MethodType, LambdaForm) and provided implementation for all subclasses.
>
> Also, some cleanups:
> * rewrote MH.viewAsType on top of MH.copyWith;
> * extended MH.viewAsType to do strict checks w/ assertions turned on (new parameter: boolean strict);
> * extended MT.isViewableAs to accept both interface preserving and interface erasing conversions (new parameter: boolean keepInterfaces).
>
> Testing: jdk/java/lang/invoke, jdk/java/util/streams, nashorn, octane w/ "-ea -esa" and COMPILE_THRESHOLD={0,30}.
>
> Reviewed-by: vlivanov, ?
> Contributed-by: john.r.rose at oracle.com
>
Looks good, just one comment.
MethodHandles.restrictReceiver
This method has:
1578 private MethodHandle restrictReceiver(MemberName method, MethodHandle mh, Class<?> caller) throws IllegalAccessException {
...
1589 assert(mh instanceof DirectMethodHandle); // DirectMethodHandle.copyWith
Why not make the second parameter be "DirectMethodHandle mh" ?
Paul.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20140716/f8830671/signature.asc>
More information about the mlvm-dev
mailing list