< prev index next >

test/langtools/tools/javac/lambda/bytecode/TestLambdaBytecode.java

Print this page

        

@@ -270,18 +270,18 @@
                     (CONSTANT_MethodHandle_info)cf.constant_pool.get(bsm_spec.bootstrap_arguments[1]);
 
             boolean kindOK;
             switch (mh.reference_kind) {
                 case REF_invokeStatic: kindOK = mk2.isStatic(); break;
-                case REF_invokeSpecial: kindOK = !mk2.isStatic(); break;
+                case REF_invokeVirtual: kindOK = !mk2.isStatic() && !mk2.inInterface(); break;
                 case REF_invokeInterface: kindOK = mk2.inInterface(); break;
                 default:
                     kindOK = false;
             }
 
             if (!kindOK) {
-                fail("Bad invoke kind in implementation method handle");
+                fail("Bad invoke kind in implementation method handle: " + mh.reference_kind);
                 return;
             }
 
             if (!mh.getCPRefInfo().getNameAndTypeInfo().getType().toString().equals(MH_SIG)) {
                 fail("Type mismatch in implementation method handle");
< prev index next >