[ https://issues.apache.org/jira/browse/GROOVY-6864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17695742#comment-17695742 ]
Mauro Molinari commented on GROOVY-6864: ---------------------------------------- Hit again this today :( > Stub generation doesn't generate constructors added by @TupleConstructor > ------------------------------------------------------------------------ > > Key: GROOVY-6864 > URL: https://issues.apache.org/jira/browse/GROOVY-6864 > Project: Groovy > Issue Type: Bug > Components: Stub generator / Joint compiler > Affects Versions: 2.3.2 > Reporter: Jan Bols > Priority: Major > Attachments: jointCompilationTest.zip > > > When doing joint compilation, the generated subs don't include the > constructors created by the {{@TupleConstructor}}. > I created a groovy class: > {code} > @TupleConstructor > class SomeGroovyClass { > String someValue > } > {code} > ... and a java class: > {code} > public class Client { > public static void main(String [] args) > { > SomeGroovyClass groovyClass = new SomeGroovyClass("val"); > } > } > {code} > When I build this in maven using the gmavenplus plugin I get the following > output: > {code} > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile > (default-compile) on project jointCompilationTest: Compilation failure > [ERROR] > C:\dev\projects\jointCompilationTest\src\main\java\Client.java:[21,38] error: > constructor SomeGroovyClass in class SomeGroovyClass cannot be applied to > given types; > {code} > Looking at the generated stub shows that the constructor is not added: > {code} > @groovy.transform.TupleConstructor() public class SomeGroovyClass > extends java.lang.Object implements > groovy.lang.GroovyObject { > public groovy.lang.MetaClass getMetaClass() { return > (groovy.lang.MetaClass)null;} > public void setMetaClass(groovy.lang.MetaClass mc) { } > public java.lang.Object invokeMethod(java.lang.String method, > java.lang.Object arguments) { return null;} > public java.lang.Object getProperty(java.lang.String property) { return > null;} > public void setProperty(java.lang.String property, java.lang.Object value) { > } > public java.lang.String getSomeValue() { return (java.lang.String)null;} > public void setSomeValue(java.lang.String value) { } > } > {code} > You can find a sample project using maven in attachment. -- This message was sent by Atlassian Jira (v8.20.10#820010)