Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • Compiler
    • None

    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

      Attachments

        Activity

          People

            Unassigned Unassigned
            blackdrag Jochen Theodorou
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: