ajwang / groovypptest

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

Convert FList to List and Set #374

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
import groovypp.concurrent.FList

FList<String> l = FList.emptyList.addAll(['2'])
println(l as List)
println(l as Set)

now fails at runtime:

org.codehaus.groovy.syntax.RuntimeParserException: The return type of 
groovypp.concurrent.FList remove(java.lang.Object) in 
FList$OneElementList_delegateProxy is incompatible with boolean 
remove(java.lang.Object) in java.util.List
. At [133:5] 
    at org.codehaus.groovy.classgen.Verifier.getCovariantImplementation(Verifier.java:1124)
    at org.codehaus.groovy.classgen.Verifier.storeMissingCovariantMethods(Verifier.java:1229)
    at org.codehaus.groovy.classgen.Verifier.addCovariantMethods(Verifier.java:1097)
    at org.codehaus.groovy.classgen.Verifier.addCovariantMethods(Verifier.java:1032)
    at org.codehaus.groovy.classgen.Verifier.visitClass(Verifier.java:169)
    at org.mbte.groovypp.compiler.CleaningVerifier.visitClass(CleaningVerifier.java:250)
    at org.mbte.groovypp.compiler.CleaningVerifier.visitClassCarefully(CleaningVerifier.java:319)
    at org.mbte.groovypp.compiler.TraitASTTransformFinal.visit(TraitASTTransformFinal.java:68)
    at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:302)
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:839)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:544)
    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.parse(GroovyShell.java:743)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:578)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589)
    at groovy.util.ProxyGenerator.instantiateDelegateWithBaseClass(ProxyGenerator.java:352)
    at groovy.util.ProxyGenerator.instantiateDelegateWithBaseClass(ProxyGenerator.java:268)
    at groovy.util.ProxyGenerator.instantiateDelegate(ProxyGenerator.java:259)
    at groovy.util.ProxyGenerator.instantiateDelegate(ProxyGenerator.java:255)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.asType(DefaultGroovyMethods.java:15451)
    at org.codehaus.groovy.runtime.dgm$56.doMethodInvoke(Unknown Source)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1055)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:885)
    at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:793)
    at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:776)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:164)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.asType(ScriptBytecodeAdapter.java:587)
    at aaa.run(aaa.gpp:4)
    at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:266)
    at groovy.lang.GroovyShell.run(GroovyShell.java:229)
    at groovy.lang.GroovyShell.run(GroovyShell.java:159)
    at groovy.ui.GroovyMain.processOnce(GroovyMain.java:514)
    at groovy.ui.GroovyMain.run(GroovyMain.java:329)
    at groovy.ui.GroovyMain.process(GroovyMain.java:315)
    at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
    at groovy.ui.GroovyMain.main(GroovyMain.java:93)
    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.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
    at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
    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.application.AppMain.main(AppMain.java:120)
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot 
cast object '[2]' with class 'groovypp.concurrent.FList$OneElementList' to 
class 'java.util.List'
    at aaa.run(aaa.gpp:4)

Original issue reported on code.google.com by gromop...@gmail.com on 8 May 2011 at 2:32

GoogleCodeExporter commented 8 years ago
Did it work before?

Original comment by alex.tka...@gmail.com on 8 May 2011 at 3:04

GoogleCodeExporter commented 8 years ago
Never tried. But IMO it should

Original comment by gromop...@gmail.com on 8 May 2011 at 3:06

GoogleCodeExporter commented 8 years ago
IMO FList should implement List, then it will become compatible with tons of 
existing code. And the similar thing with FHashMap

Original comment by gromop...@gmail.com on 8 May 2011 at 3:07