[ 
https://issues.apache.org/jira/browse/BCEL-333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary D. Gregory resolved BCEL-333.
----------------------------------
    Resolution: Fixed

Merged to git master.

> InovokeStatic may refer to either a MethodRef or an InterfaceMethodRef
> ----------------------------------------------------------------------
>
>                 Key: BCEL-333
>                 URL: https://issues.apache.org/jira/browse/BCEL-333
>             Project: Commons BCEL
>          Issue Type: Bug
>            Reporter: Mark Roberts
>            Priority: Major
>
> Java 8 added support for static interfaces.  This means that an invokestatic 
> instruction may refer to either a CONSTANT_Methodref_info or a 
> CONSTANT_InterfaceMethodref_info.  See 
> [https://stackoverflow.com/questions/34360718/invokestatic-on-static-method-in-interface]
>  for a detailed explanation.  Currently, if InstructionFactory.createInvoke 
> sees an Const.INVOKEINTERFACE it generates an InterfaceMethodref and a 
> Methodref otherwise.  This is incorrect.  I could not figure out any way to 
> make the correct decision programmatically as the original instruction is not 
> available.  So I added an additional createInvoke method with a boolean 
> argument that says whether or not to use an InterfaceMethodref.  The 
> semantics of the original createInvoke method are unchanged.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to