ajwang / groovypptest

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

Compilation fails when using groovy.lang.Reference with generics #385

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
def seq(Function1<File, Void> cl) {}

groovy.lang.Reference<String> prev = [null]
seq() {
  String p = prev.get()
  String next = 'a'
  prev.set(next)
}

----------

BUG! ClassNode#getTypeClass for String is called before the type class is set 
    at org.codehaus.groovy.ast.ClassNode.getTypeClass(ClassNode.java:1311)
    at org.mbte.groovypp.compiler.ClassNodeCache.getClassNodeInfo(ClassNodeCache.java:181)
    at org.mbte.groovypp.compiler.ClassNodeCache.getMethods(ClassNodeCache.java:238)
    at org.mbte.groovypp.compiler.CompilerTransformer.findMethod(CompilerTransformer.java:256)
    at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.findMethodVariatingArgs(MethodCallExpressionTransformer.java:610)
    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.mbte.groovypp.compiler.CompilerTransformer.castToString(CompilerTransformer.java:613)
    at org.mbte.groovypp.compiler.transformers.CastExpressionTransformer.transform(CastExpressionTransformer.java:247)
    at org.mbte.groovypp.compiler.transformers.CastExpressionTransformer.transform(CastExpressionTransformer.java:41)
    at org.mbte.groovypp.compiler.transformers.ExprTransformer.transformExpression(ExprTransformer.groovy:103)
    at org.mbte.groovypp.compiler.CompilerTransformer.transform(CompilerTransformer.java:114)
    at org.mbte.groovypp.compiler.CompilerTransformer.transformToGround(CompilerTransformer.java:132)
    at org.mbte.groovypp.compiler.transformers.DeclarationExpressionTransformer.transform(DeclarationExpressionTransformer.java:49)
    at org.mbte.groovypp.compiler.transformers.DeclarationExpressionTransformer.transform(DeclarationExpressionTransformer.java:25)
    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:408)
    at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40)
    at org.mbte.groovypp.compiler.StaticCompiler.visitBlockStatement(StaticCompiler.java:378)
    at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
    at org.mbte.groovypp.compiler.StaticCompiler.execute(StaticCompiler.java:1232)
    at org.mbte.groovypp.compiler.StaticMethodBytecode.<init>(StaticMethodBytecode.java:71)
    at org.mbte.groovypp.compiler.StaticMethodBytecode.replaceMethodCode(StaticMethodBytecode.java:95)
    at org.mbte.groovypp.compiler.CompilerTransformer.replaceMethodCode(CompilerTransformer.java:172)
    at org.mbte.groovypp.compiler.ClosureUtil.isMatch(ClosureUtil.java:161)
    at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.foundMethodInference(MethodCallExpressionTransformer.java:710)
    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.createThisOrSuperInVirtualMethod(MethodCallExpressionTransformer.java:230)
    at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.createThisOrSuperMethodCall(MethodCallExpressionTransformer.java:210)
    at org.mbte.groovypp.compiler.transformers.MethodCallExpressionTransformer.transform(MethodCallExpressionTransformer.java:90)
    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.mbte.groovypp.compiler.CompilerTransformer.transformToGround(CompilerTransformer.java:132)
    at org.mbte.groovypp.compiler.StaticCompiler.visitReturnStatement(StaticCompiler.java:732)
    at org.codehaus.groovy.ast.stmt.ReturnStatement.visit(ReturnStatement.java:47)
    at org.mbte.groovypp.compiler.StaticCompiler.visitBlockStatement(StaticCompiler.java:378)
    at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
    at org.mbte.groovypp.compiler.StaticCompiler.execute(StaticCompiler.java:1232)
    at org.mbte.groovypp.compiler.StaticMethodBytecode.<init>(StaticMethodBytecode.java:71)
    at org.mbte.groovypp.compiler.StaticMethodBytecode.replaceMethodCode(StaticMethodBytecode.java:95)
    at org.mbte.groovypp.compiler.CompileASTTransform.visit(CompileASTTransform.java:121)
    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 org.jetbrains.groovy.compiler.rt.GroovyCompilerWrapper.compile(GroovyCompilerWrapper.java:43)
    at org.jetbrains.groovy.compiler.rt.GroovycRunner.main(GroovycRunner.java:128)
    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 com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:75)

Original issue reported on code.google.com by gromop...@gmail.com on 7 Jul 2011 at 8:33

GoogleCodeExporter commented 8 years ago
0.4.232

Original comment by gromop...@gmail.com on 7 Jul 2011 at 8:34

GoogleCodeExporter commented 8 years ago
Could you please recheck with 0.4.279 - I can not reproduce it

Original comment by alex.tka...@gmail.com on 7 Jul 2011 at 1:17

GoogleCodeExporter commented 8 years ago
Fails in the same way. The file extension is gpp, if that matters

Original comment by gromop...@gmail.com on 7 Jul 2011 at 8:07

GoogleCodeExporter commented 8 years ago
I can not reproduce the issue. 

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