-
Enhancement
-
Resolution: Fixed
-
P2
-
None
-
b30
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8013677 | 8 | Bharadwaj Yadavalli | P2 | Closed | Fixed | b88 |
Per the upcoming version (0.6.2) of the lambda spec, these static interface methods are InterfaceMethod_ref. Currently, classFileParser.cpp disallows invokestatic (and invokespecial) calls to InterfaceMethod_ref. Thus these methods cannot be called.
Below describes the spec:
...keep the current restrictions on Methodref_info, and the instruction arguments will be expected as follows:
invokevirtual(Methodref_info)
invokeinterface(InterfaceMethoref_info)
invokespecial(Methodref_info or InterfaceMethodref_info)
invokestatic(Methodref_info or InterfaceMethodref_info)
-----
Please find attached a proposed patch to accomplish this. It is unknown if restrictions will need to be put elsewhere in the VM to compensate for this widening.
- backported by
-
JDK-8013677 InterfaceMethod_ref should allow invokestatic and invokespecial
- Closed
- relates to
-
JDK-8008689 test reflective modeling and calling of static methods on interfaces
- Closed
-
JDK-8007297 [pack200] allow opcodes with InterfaceMethodRefs
- Closed
-
JDK-8008687 MethodHandle code: allow static and invokespecial calls to interface methods
- Closed
-
JDK-8016764 JVM does not prohibit invokespecial in c.f.v 51.0 that invokes default interface method in c.f.v. 52.0
- Closed
-
JDK-8011311 Lambda: Support Private concrete methods in interfaces
- Closed
-
JDK-8013875 Incorrect vtable index being set during methodHandle creation for static methods
- Resolved
-
JDK-8014059 JSR292: Failed to reject invalid class cplmhl00201m28n
- Closed
-
JDK-8016764 JVM does not prohibit invokespecial in c.f.v 51.0 that invokes default interface method in c.f.v. 52.0
- Closed