What steps will reproduce the problem?
@Typed
package p
Map<String,Integer> counters = [:].withDefault{0}
"a,a,b,a,b,b,a,a,b,b,b,a,b,a".split("\\,").each {
counters[it]++
//counters[it] += 1 => works
}
println counters
this gives me compilation error:
java.lang.RuntimeException: Internal compiler error: Inconsistent pop
at org.mbte.groovypp.compiler.bytecode.BytecodeStack.pop(BytecodeStack.java:45)
at org.mbte.groovypp.compiler.bytecode.StackAwareMethodAdapter.popArgs(StackAwareMethodAdapter.java:679)
at org.mbte.groovypp.compiler.bytecode.StackAwareMethodAdapter.visitMethodInsn(StackAwareMethodAdapter.java:606)
at org.mbte.groovypp.compiler.asm.IcmpZeroImproverMethodAdapter.visitMethodInsn(IcmpZeroImproverMethodAdapter.java:84)
at org.mbte.groovypp.compiler.asm.I2LL2IRemoverMethodAdapter.visitMethodInsn(I2LL2IRemoverMethodAdapter.java:75)
at org.mbte.groovypp.compiler.asm.UnneededBoxingRemoverMethodAdapter.dropBoxing(UnneededBoxingRemoverMethodAdapter.java:38)
at org.mbte.groovypp.compiler.asm.UnneededBoxingRemoverMethodAdapter.visitInsn(UnneededBoxingRemoverMethodAdapter.java:48)
at org.mbte.groovypp.compiler.asm.UnneededDupStoreRemoverMethodAdapter.dropDupStore(UnneededDupStoreRemoverMethodAdapter.java:66)
at org.mbte.groovypp.compiler.asm.UnneededDupStoreRemoverMethodAdapter.visitJumpInsn(UnneededDupStoreRemoverMethodAdapter.java:148)
at org.mbte.groovypp.compiler.asm.UnneededDupXStoreRemoverMethodAdapter.visitJumpInsn(UnneededDupXStoreRemoverMethodAdapter.java:156)
at org.mbte.groovypp.compiler.asm.UnneededLoadPopRemoverMethodAdapter.visitJumpInsn(UnneededLoadPopRemoverMethodAdapter.java:220)
at org.mbte.groovypp.compiler.CompilerTransformer$6.compile(CompilerTransformer.java:628)
at org.mbte.groovypp.compiler.bytecode.BytecodeExpr.visit(BytecodeExpr.java:39)
at org.mbte.groovypp.compiler.transformers.CastExpressionTransformer$6.compile(CastExpressionTransformer.java:668)
at org.mbte.groovypp.compiler.bytecode.BytecodeExpr.visit(BytecodeExpr.java:39)
at org.mbte.groovypp.compiler.bytecode.ResolvedMethodBytecodeExpr.loadParams(ResolvedMethodBytecodeExpr.java:248)
at org.mbte.groovypp.compiler.bytecode.ResolvedMethodBytecodeExpr.compile(ResolvedMethodBytecodeExpr.java:237)
at org.mbte.groovypp.compiler.bytecode.BytecodeExpr.visit(BytecodeExpr.java:39)
at org.mbte.groovypp.compiler.bytecode.ResolvedArrayLikeBytecodeExpr$18.compile(ResolvedArrayLikeBytecodeExpr.java:287)
at org.mbte.groovypp.compiler.bytecode.BytecodeExpr.visit(BytecodeExpr.java:39)
at org.mbte.groovypp.compiler.StaticCompiler.visitReturnStatement(StaticCompiler.java:726)
at org.codehaus.groovy.ast.stmt.ReturnStatement.visit(ReturnStatement.java:47)
at org.mbte.groovypp.compiler.StaticCompiler.visitBlockStatement(StaticCompiler.java:357)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
at org.mbte.groovypp.compiler.StaticCompiler.visitBlockStatement(StaticCompiler.java:357)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
at org.mbte.groovypp.compiler.StaticCompiler.execute(StaticCompiler.java:1212)
at org.mbte.groovypp.compiler.StaticMethodBytecode.<init>(StaticMethodBytecode.java:73)
at org.mbte.groovypp.compiler.StaticMethodBytecode.replaceMethodCode(StaticMethodBytecode.java:106)
at org.mbte.groovypp.compiler.CompilerTransformer.replaceMethodCode(CompilerTransformer.java:175)
at org.mbte.groovypp.compiler.ClosureUtil.isMatch(ClosureUtil.java:182)
at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.inferTypesForClosure(MethodCallExpressionTransformer.java:797)
at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.foundMethodInference(MethodCallExpressionTransformer.java:729)
at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.findMethodVariatingArgs(MethodCallExpressionTransformer.java:617)
at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.findMethodWithClosureCoercion(MethodCallExpressionTransformer.java:832)
at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.createNormalMethodCall(MethodCallExpressionTransformer.java:113)
at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.transform(MethodCallExpressionTransformer.java:92)
at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.transform(MethodCallExpressionTransformer.java:36)
at org.mbte.groovypp.compiler.transformers.ExprTransformer.transformExpression(ExprTransformer.groovy:103)
at org.mbte.groovypp.compiler.CompilerTransformer.transform(CompilerTransformer.java:114)
at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:139)
at org.mbte.groovypp.compiler.StaticCompiler.visitExpressionStatement(StaticCompiler.java:387)
at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40)
at org.mbte.groovypp.compiler.StaticCompiler.visitBlockStatement(StaticCompiler.java:357)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
at org.mbte.groovypp.compiler.StaticCompiler.visitBlockStatement(StaticCompiler.java:357)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
at org.mbte.groovypp.compiler.StaticCompiler.execute(StaticCompiler.java:1212)
at org.mbte.groovypp.compiler.StaticMethodBytecode.<init>(StaticMethodBytecode.java:73)
at org.mbte.groovypp.compiler.StaticMethodBytecode.replaceMethodCode(StaticMethodBytecode.java:106)
at org.mbte.groovypp.compiler.CompileASTTransform.visit(CompileASTTransform.java:125)
at org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:129)
at org.codehaus.groovy.transform.ASTTransformationVisitor$2.call(ASTTransformationVisitor.java:172)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:957)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:542)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:520)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:497)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:306)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:287)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:731)
at groovy.lang.GroovyShell.run(GroovyShell.java:516)
at groovy.lang.GroovyShell.run(GroovyShell.java:172)
at groovy.lang.GroovyShell$run.call(Unknown Source)
at groovy.ui.Console$_runScriptImpl_closure16.doCall(Console.groovy:910)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:885)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at groovy.ui.Console$_runScriptImpl_closure16.doCall(Console.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:885)
at groovy.lang.Closure.call(Closure.java:405)
at groovy.lang.Closure.call(Closure.java:399)
at groovy.lang.Closure.run(Closure.java:483)
at java.lang.Thread.run(Thread.java:662)
1 compilation error:
I use the last groovypp-0.4.279_1.8.0 on windows
Original issue reported on code.google.com by benoit.l...@gmail.com on 14 Jul 2011 at 1:16
Original issue reported on code.google.com by
benoit.l...@gmail.com
on 14 Jul 2011 at 1:16