[ 
https://issues.apache.org/jira/browse/GROOVY-8930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16723953#comment-16723953
 ] 

Paul King commented on GROOVY-8930:
-----------------------------------

This doesn't fail on 3.0.0-alpha-3, so compiling this file using that version 
of Groovy would be your workaround until we fix this.

3.0.0-alpha-3 produces identical bytecode to 2.5.4 (and current 2.5.5-SNAPSHOT) 
for the {{doCall}} method and an identical constant pool. The only difference 
is that 2.5.x leaves the bytecode level at 51 (JDK7) whereas 3.0.x uses level 
52 (JDK8) which is required for the InterfaceMethodref we are currently using 
to point to that static interface method.

> JVM verification fails when using static interface method from inside 
> CompileStatic groovy
> ------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-8930
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8930
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.5.4
>            Reporter: Artsiom Matronkin
>            Priority: Major
>         Attachments: Caller.groovy, JavaInterface.class, JavaInterface.java
>
>
> Create and compile java interface containing static method using JDK8
> {code:java}
> public interface JavaInterface
> {
>   static int doSmth()
>   {
>     return 42;
>   }
> }
> {code}
>  javac JavaInterface.java
>  
> Open groovyConsole (2.5.4), add folder where JavaInterface.class is located 
> to classpath, check 'Enable indy compilation' and paste following script
>  
> {code}
> import groovy.transform.CompileStatic
> import static JavaInterface.doSmth
> @CompileStatic
> void doCall()
> {
>   println doSmth()
> }
> {code}
>  
>  
> Compile and Run the script in groovyConsole. The result is JVM verification 
> failure:
> {noformat}
> java.lang.VerifyError: Illegal type at constant pool entry 51 in class Caller
> Exception Details:
> Location:
> Caller.doCall()V @4: invokestatic
> Reason:
> Constant pool index 51 is invalid{noformat}
> Best Regards
> Artsiom
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to