Index: src/main/org/codehaus/groovy/ast/ClassNode.java =================================================================== --- src/main/org/codehaus/groovy/ast/ClassNode.java (revision 15520) +++ src/main/org/codehaus/groovy/ast/ClassNode.java (working copy) @@ -303,9 +303,6 @@ this.methods = new MapOfLists(); this.methodsList = new ArrayList(); - if ((modifiers & ACC_INTERFACE) == 0) - addField("$ownClass", ACC_STATIC|ACC_PUBLIC|ACC_FINAL|ACC_SYNTHETIC, ClassHelper.CLASS_Type, new ClassExpression(this)).setSynthetic(true); - transformInstances = new EnumMap, Set>>(CompilePhase.class); for (CompilePhase phase : CompilePhase.values()) { transformInstances.put(phase, new HashMap, Set>()); Index: src/main/org/codehaus/groovy/classgen/AsmClassGenerator.java =================================================================== --- src/main/org/codehaus/groovy/classgen/AsmClassGenerator.java (revision 15520) +++ src/main/org/codehaus/groovy/classgen/AsmClassGenerator.java (working copy) @@ -244,6 +244,7 @@ if (!classNode.declaresInterface(ClassHelper.GENERATED_CLOSURE_Type)) { createMopMethods(); } + generateCallSiteArray(); createSyntheticStaticFields(); } @@ -270,7 +271,6 @@ } //TODO: an inner class should have an entry of itself - generateCallSiteArray(); cv.visitEnd(); } catch (GroovyRuntimeException e) { @@ -322,11 +322,11 @@ } private void generateCreateCallSiteArray() { - MethodVisitor mv = cv.visitMethod(ACC_PRIVATE+ACC_SYNTHETIC+ACC_STATIC,"$createCallSiteArray", "()Lorg/codehaus/groovy/runtime/callsite/CallSiteArray;", null, null); + mv = cv.visitMethod(ACC_PRIVATE+ACC_SYNTHETIC+ACC_STATIC,"$createCallSiteArray", "()Lorg/codehaus/groovy/runtime/callsite/CallSiteArray;", null, null); mv.visitCode(); mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/callsite/CallSiteArray"); mv.visitInsn(DUP); - mv.visitFieldInsn(GETSTATIC, internalClassName, "$ownClass", "Ljava/lang/Class;"); + visitClassExpression(new ClassExpression(classNode)); final int size = callSites.size(); mv.visitLdcInsn(size);