Details

    • Type: Sub-task Sub-task
    • Status: Open Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 2.x
    • Component/s: Compiler
    • 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

        No work has yet been logged on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            blackdrag blackdrag
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated: