groovy

ClassNode:306

Details

  • Type: Sub-task Sub-task
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: 1.7.x
  • Component/s: None
  • Labels:
    None
  • Number of attachments :
    0

Description

ClassNode:306 has

if ((modifiers & ACC_INTERFACE) == 0)
          addField("$ownClass", ACC_STATIC|ACC_PUBLIC|ACC_FINAL, ClassHelper.CLASS_Type, new ClassExpression(this)).setSynthetic(true);

        transformInstances = new EnumMap<CompilePhase, Map<Class <? extends ASTTransformation>, Set<ASTNode>>>(CompilePhase.class);
        for (CompilePhase phase : CompilePhase.values()) {
            transformInstances.put(phase, new HashMap<Class <? extends ASTTransformation>, Set<ASTNode>>());
        }
which should be moved somewhere else. The "$ownclass" probably into verifier (see GROOVY-3255) and the for transformInstances we need to find a good place. At last there is no sense in addeding these instances to a ClassNode, that is no primary class node. The code above is for example executed for each class creation in ClassHelper, which looks very surplus

Activity

Hide
blackdrag blackdrag added a comment -

I cloned GROOVY-3255 since the issue with the transform code is still there

Show
blackdrag blackdrag added a comment - I cloned GROOVY-3255 since the issue with the transform code is still there

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: