< prev index next >
test/langtools/tools/javac/lambda/bytecode/TestLambdaBytecode.java
Print this page
*** 270,287 ****
(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_invokeInterface: kindOK = mk2.inInterface(); break;
default:
kindOK = false;
}
if (!kindOK) {
! fail("Bad invoke kind in implementation method handle");
return;
}
if (!mh.getCPRefInfo().getNameAndTypeInfo().getType().toString().equals(MH_SIG)) {
fail("Type mismatch in implementation method handle");
--- 270,287 ----
(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_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: " + mh.reference_kind);
return;
}
if (!mh.getCPRefInfo().getNameAndTypeInfo().getType().toString().equals(MH_SIG)) {
fail("Type mismatch in implementation method handle");
< prev index next >