[ https://issues.apache.org/jira/browse/GROOVY-9059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16822054#comment-16822054 ]
Eric Milles commented on GROOVY-9059: ------------------------------------- Just after this, the method generics spec is loaded: {code} genericsSpec = GenericsUtils.addMethodGenerics(overridingMethod, genericsSpec); {code} This is probably needed to correctly determine covariance. > Failed to parse/compile generic methods with "extends" > ------------------------------------------------------ > > Key: GROOVY-9059 > URL: https://issues.apache.org/jira/browse/GROOVY-9059 > Project: Groovy > Issue Type: Bug > Components: Static compilation > Affects Versions: 2.4.16, 3.0.0-alpha-4, 2.5.6 > Reporter: Xiaoguang Wang > Priority: Major > Attachments: image-2019-03-30-13-10-20-819.png > > > > {code:java} > import groovy.transform.CompileStatic > // This bug affects: groovy-2.4.16, groovy-2.5.6, groovy-3.0.0-alpha-4 > // This bug also affect IDEA's syntax parser > interface X<T> { > // Intellij IDEA reports that 'public' is not necessary > // BUT without the 'public' modifier, there is a syntax error > public <T> T foo(T o); > } > interface Y<T> { > public <O extends T> O foo(O o); > } > @CompileStatic > class TestGroovyGeneric { > static void main(String[] args) { > def x = new X<String>() { > // it compiles > // BUT: Intellij IDEA reports: ERROR: Method 'foo' is not > implemented > @Override > String foo(String o) { return o } > } > // Strangely, such code compiles > // BUT: Intellij IDEA reports: ERROR: Method 'foo' is not implemented > def y1 = new Y<String>() { > @Override > public <String> String foo(String o) { return o } > } > // Can not compile: > // BUT: Intellij IDEA reports no error .... > def y2 = new Y<String>() { > @Override > String foo(String o) { return o } > } > } > } > {code} > !image-2019-03-30-13-10-20-819.png! > -- This message was sent by Atlassian JIRA (v7.6.3#76005)