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

Paul King commented on GROOVY-7362:
-----------------------------------

Removing 2_5_X fix version for now since GROOVY-8495 was removed for now from 
2_5_X. We can add a 2.5.x fix version if/when we backport GROOVY-8495 to 2_5_X.

> Can't compile Java class extending Groovy abstract class with explicit 
> GroovyObject interface
> ---------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-7362
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7362
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 2.4.0
>            Reporter: Peter Gromov
>            Assignee: Paul King
>            Priority: Major
>             Fix For: 3.0.0-alpha-4
>
>
> That's a more advanced version of GROOVY-3877
> Compile classes.groovy:
> {code}
> abstract class AbstractClass extends ConcreteClass implements GroovyObject {}
> class ConcreteClass {}
> {code}
> Then compile JavaClass.java:
> {code}
> public class JavaClass extends AbstractClass {}
> {code}
> You get:
> {quote}
> JavaClass.java:1: error: JavaClass is not abstract and does not override 
> abstract method setMetaClass(MetaClass) in GroovyObject
> public class JavaClass extends AbstractClass {
>        ^
> 1 error
> {quote}
> That's likely because setMetaClass is added as a synthetic method in 
> ConcreteClass and not overridden in AbstractClass.
> This also happens without explicit GroovyObject interface when using joint 
> compilation 
> (https://youtrack.jetbrains.com/issue/IDEA-137722#comment=27-952814). Before 
> generating stubs, "implements GroovyObject" is added to Groovy classes, and 
> if it so happens that AbstractClass is visited before ConcreteClass, then 
> "implements GroovyObject" will be added to both Groovy classes, but the 
> (synthetic) implementations somehow end up being only in ConcreteClass.



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

Reply via email to