On Tue, 8 Jun 2021 16:46:36 GMT, Vicente Romero <[email protected]> wrote:
> Please review this PR which is just syncing the implementation of
> DirectMethodHandleDesc.Kind.valueOf(int) with its spec. My reading of the
> method's spec is that if the value of the `refKind` parameter is:
> MethodHandleInfo.REF_invokeInterface, then
> DirectMethodHandleDesc.Kind.valueOf(int, boolean) should be called with a
> value of `true` for its second argument, currently it is invoked with `false`
> regardless of the value of the `refKind` parameter
>
> TIA
test/jdk/java/lang/constant/MethodHandleDescTest.java line 362:
> 360: public void testKind() {
> 361: for (Kind k : Kind.values()) {
> 362: assertEquals(Kind.valueOf(k.refKind),
> Kind.valueOf(k.refKind, k.refKind == MethodHandleInfo.REF_invokeInterface));
Looks like the test does not verify the cases specified by `valueOf(int
refKind, boolean isInterface)`.
i.e. For most values of refKind, there is an exact match regardless of the
value of isInterface except `REF_invokeStatic` and `REF_invokeSpecial`.
Do you mind adding those cases?
-------------
PR: https://git.openjdk.java.net/jdk/pull/4416