ajwang / groovypptest

Automatically exported from code.google.com/p/groovypptest
0 stars 0 forks source link

increment counter in Map: compilation error #389

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
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

GoogleCodeExporter commented 8 years ago

Original comment by alex.tka...@gmail.com on 15 Jul 2011 at 4:56

GoogleCodeExporter commented 8 years ago

Original comment by alex.tka...@gmail.com on 15 Jul 2011 at 6:49