No. I did not try a newer Groovy as it had to be the version that is
bundled with Gradle 2.0.
Actually the code is now online
https://github.com/ysb33r/groovy-vfs/blob/master/gradle-plugin/src/main/groovy/org/ysb33r/gradle/vfs/internal/UpToDateCheck.groovy#L55
Replace that .each with a for loop and it fails with the below error.
On 28/10/2015 22:41, Pascal Schumacher wrote:
Hard to say. Are using compile static? Did you try a newer groovy
version?
Am 27.10.2015 um 19:23 schrieb Schalk Cronjé:
To add a note to this. The exception does not occur when using .each
on the collection.
On 27/10/2015 17:32, Schalk Cronjé wrote:
I appreciate this might be hard to provide info on without the lack
of source code to look at, but I have not been able to distill this
down to a simplified case. I am still working on a piece of new code
for Groovy-VFS so have not even pushed it upstream yet. However this
compilation error has caught me out.
Maybe one of the Groovy Devs might have a clue as to what can cause
this kind of error.
General error during class generation: Internal compiler error while
compiling **/**/UpToDateCheck.groovy
Method: MethodNode@1811575933[boolean
forUriCollection(org.gradle.api.logging.Logger,
org.ysb33r.groovy.dsl.vfs.VFS,
org.ysb33r.gradle.vfs.VfsURICollection, java.lang.Object)]
Line 35, expecting casting to java.util.Iterator <E extends
java.lang.Object> but operand stack is empty
java.lang.ArrayIndexOutOfBoundsException: Internal compiler error
while compiling **/**/UpToDateCheck.groovy
Method: MethodNode@1811575933[boolean
forUriCollection(org.gradle.api.logging.Logger,
org.ysb33r.groovy.dsl.vfs.VFS,
org.ysb33r.gradle.vfs.VfsURICollection, java.lang.Object)]
Line 35, expecting casting to java.util.Iterator <E extends
java.lang.Object> but operand stack is empty
at
org.codehaus.groovy.classgen.asm.OperandStack.throwExceptionForNoStackElement(OperandStack.java:310)
at
org.codehaus.groovy.classgen.asm.OperandStack.doConvertAndCast(OperandStack.java:315)
at
org.codehaus.groovy.classgen.asm.OperandStack.doGroovyCast(OperandStack.java:279)
at
org.codehaus.groovy.classgen.asm.OperandStack.storeVar(OperandStack.java:629)
at
org.codehaus.groovy.classgen.asm.CompileStack.defineTemporaryVariable(CompileStack.java:308)
at
org.codehaus.groovy.classgen.asm.sc.StaticTypesStatementWriter.writeForInLoop(StaticTypesStatementWriter.java:85)
It seems to be related to a for-loop over an internal Groovy VFS
class that implements the Iterable interface.
The version of Groovy would be 2.3.3.
--
Schalk W. Cronjé
Twitter / Ello / Toeter : @ysb33r