[
https://issues.apache.org/jira/browse/GROOVY-7721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15073842#comment-15073842
]
Jochen Theodorou commented on GROOVY-7721:
------------------------------------------
This would mean the static compiler does not ignore the synthetic bridge method
in I2 (created for the R[] returning method)
> 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)