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

Reply via email to