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

Reply via email to