What version of Groovy are you using? Maybe I'm doing something different, but on 2.4.4, I'm not seeing the error you're seeing.
-Keegan On Wed, Sep 2, 2015 at 8:44 AM, Jamie Echlin <jamie.ech...@gmail.com> wrote: > Found a bug with type checking... at least I think it's a bug. If no one > disagrees I'll raise a ticket in jira. > > When I compile the following using: > > ASTTransformationCustomizer astcz = new > ASTTransformationCustomizer( > TypeChecked) > > I get an NPE, which suggests that the compilation unit hasn't been set for > one of the classes. Input code is: > > import groovy.transform.TypeChecked > > @TypeChecked > class TypeCheckingBug { > > void methodA() { > // removing this or the othing makes this work > ['a', 'b'].eachWithIndex { String value, sequence -> } > } > > > void methodB() { > > def instanceB = new ClassB() > > // removing this or the above makes this work > instanceB.with { > instanceC > } > } > > > class ClassB { > ClassC instanceC > } > > class ClassC { } > } > > Removing either of the two lines with the comments makes it work. > > Any help appreciated. > cheers, jamie > > Caused by: java.lang.NullPointerException > at > org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:177) > at > org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:167) > at > org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:123) > at > org.codehaus.groovy.control.ResolveVisitor.resolveToOuter(ResolveVisitor.java:675) > at > org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:307) > at > org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:307) > at > org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:275) > at > org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:259) > at > org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:271) > at > org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:196) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:123) > at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1083) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:50) > at > org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1260) > at > org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:175) > at > org.codehaus.groovy.ast.tools.GenericsUtils.resolveClassNode(GenericsUtils.java:560) > at > org.codehaus.groovy.ast.tools.GenericsUtils.parseClassNodesFromString(GenericsUtils.java:527) > at groovy.transform.stc.FromString.parseOption(FromString.java:74) > at groovy.transform.stc.FromString.getClosureSignatures(FromString.java:55) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.getSignaturesFromHint(StaticTypeCheckingVisitor.java:2588) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.doInferClosureParameterTypes(StaticTypeCheckingVisitor.java:2609) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferClosureParameterTypes(StaticTypeCheckingVisitor.java:2508) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2474) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3109) > at > org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:64) > at > org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:69) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:193) > at > org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40) > at > org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:163) > at > org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:101) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:112) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1969) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:123) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:2302) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:2261) > at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1083) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:50) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClass(StaticTypeCheckingVisitor.java:248) > at > org.codehaus.groovy.transform.StaticTypesTransformation.visit(StaticTypesTransformation.java:63) > <+2> (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189) > at > org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130) > at > org.codehaus.groovy.control.customizers.ASTTransformationCustomizer.call(ASTTransformationCustomizer.groovy:292) > at > org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1052) > ... 268 more > > >