Peter Gromov created GROOVY-7721:
------------------------------------

             Summary: Static type checking fails when compiling against a Java8 
interface with inherited methods
                 Key: GROOVY-7721
                 URL: https://issues.apache.org/jira/browse/GROOVY-7721
             Project: Groovy
          Issue Type: Bug
          Components: Static compilation, Static Type Checker
    Affects Versions: 2.4.0
            Reporter: Peter Gromov
            Assignee: Cédric Champeau


Create classes.java:
{code}
interface I {
    R[] method();
}

interface I2 extends I {
    R2[] method();
}

interface R {}
interface R2 extends R {}
{code}

compile it with JDK 8 javac.

Then create usage.groovy:

{code}import groovy.transform.CompileStatic

@CompileStatic
class Gr {
    R2[] x(I2 i) {
       return i.method();
    }
}
{code}

Compile it with groovyc (also run with Java8) with the classes from previous 
compilation in the classpath. Compilation fails:

{code}
usage.groovy: 6: [Static type checking] - Reference to method is ambiguous. 
Cannot choose between [R2[] I2#method(), R[] I2#method()]
 @ line 6, column 15.
          return i.method();
                 ^

1 error
{code}

Originally reported as https://youtrack.jetbrains.com/issue/IDEA-148973



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to