On Jul 14, 2014, at 4:37 PM, Vladimir Ivanov <vladimir.x.iva...@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.r...@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.