Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Incomplete
-
2.4.0
-
None
-
None
-
Java 1.7.0_72-b14
Gradle wrapper 2.2.1
Description
In groovy 2.4.0-rc-2 all was ok, but now I have an error in 2.4.0. I'm not sure if is an exception or maybe there was some bad code before. Exception raises, when in a gradle task, I convert a class that have an AST to javascript with grooscript. That conversion process compile the file. In tests I don't get the error, all is ok .The code fails here:
private addDrawMethod(ClassNode classNode) { classNode.addMethod('draw', Modifier.PUBLIC, null, Parameter.EMPTY_ARRAY, ClassNode.EMPTY_ARRAY, new AstBuilder().buildFromCode { this.render() gQuery.attachMethodsToDomEvents(this) }[0]) }
And the error is:
General error during semantic analysis: AstBuilder.build(CompilePhase, boolean, Closure):List<ASTNode> should never be called at runtime. Are you sure you are using it correctly? java.lang.IllegalStateException: AstBuilder.build(CompilePhase, boolean, Closure):List<ASTNode> should never be called at runtime. Are you sure you are using it correctly? at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) at org.codehaus.groovy.ast.builder.AstBuilder.buildFromCode(AstBuilder.groovy:78) at org.codehaus.groovy.ast.builder.AstBuilder.buildFromCode(AstBuilder.groovy) at org.codehaus.groovy.ast.builder.AstBuilder$buildFromCode.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at react.ComponentImpl.addDrawMethod(ComponentImpl.groovy:71)
If you want to reproduce the error can clone the repository (https://github.com/chiquitinxx/grooscript-demos.git) and run task (./gradlew convertReact)