Program: 45403
Project: 45403
Buggy source:
public StringBuffer emit(Context cx,StringBuffer buf){
  String tagname="String_Node_Str";
  StatementListNode metaData=null;
  String debug_name="String_Node_Str";
  if (this.def instanceof FunctionDefinitionNode) {
    FunctionDefinitionNode fd=(FunctionDefinitionNode)this.def;
    debug_name=fd.fexpr.debug_name;
    metaData=fd.metaData;
    tagname="String_Node_Str";
    buf.append("String_Node_Str");
    buf.append(fd.name.identifier.name);
    buf.append("String_Node_Str");
    buf.append(fd.fexpr.debug_name);
    buf.append("String_Node_Str");
    AttributeListNode attrs=fd.attrs;
    if (attrs != null) {
      buf.append("String_Node_Str");
      buf.append(attrs.hasStatic ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
      buf.append(attrs.hasFinal ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
      buf.append(attrs.hasOverride ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
    }
    fd.fexpr.signature.toCanonicalString(cx,buf);
    buf.append("String_Node_Str");
  }
  if (this.def instanceof VariableDefinitionNode) {
    VariableDefinitionNode vd=(VariableDefinitionNode)this.def;
    VariableBindingNode vb=(VariableBindingNode)(vd.list.items.get(0));
    debug_name=vb.debug_name;
    metaData=vd.metaData;
    tagname="String_Node_Str";
    buf.append("String_Node_Str");
    buf.append(tagname);
    buf.append("String_Node_Str");
    buf.append(vb.variable.identifier.name);
    buf.append("String_Node_Str");
    buf.append(vb.debug_name);
    buf.append("String_Node_Str");
    if (vb.typeref != null) {
      Slot s=vb.typeref.getSlot(cx,GET_TOKEN);
      buf.append((s == null || s.getDebugName().length() == 0) ? vb.typeref.name : s.getDebugName());
    }
    buf.append("String_Node_Str");
    AttributeListNode attrs=vd.attrs;
    if (attrs != null) {
      buf.append("String_Node_Str");
      buf.append(attrs.hasStatic ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
    }
    Slot s=vb.ref.getSlot(cx);
    if (s != null) {
      buf.append("String_Node_Str");
      buf.append(s.isConst() ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
    }
    if (vb.initializer != null) {
      buf.append("String_Node_Str");
      if (vb.initializer instanceof LiteralNumberNode) {
        buf.append(((LiteralNumberNode)(vb.initializer)).value);
      }
 else       if (vb.initializer instanceof LiteralStringNode) {
        buf.append(escapeXml(((LiteralStringNode)(vb.initializer)).value));
      }
 else       if (vb.initializer instanceof LiteralNullNode) {
        buf.append("String_Node_Str");
      }
 else       if (vb.initializer instanceof LiteralBooleanNode) {
        buf.append((((LiteralBooleanNode)(vb.initializer)).value) ? "String_Node_Str" : "String_Node_Str");
      }
 else       if (vb.initializer instanceof MemberExpressionNode) {
        MemberExpressionNode mb=(MemberExpressionNode)(vb.initializer);
        Slot vs=(mb.ref != null ? mb.ref.getSlot(cx,GET_TOKEN) : null);
        Value v=(vs != null ? vs.getValue() : null);
        ObjectValue ov=((v instanceof ObjectValue) ? (ObjectValue)(v) : null);
        buf.append((ov != null) ? ov.getValue() : "String_Node_Str");
      }
 else {
        Slot vs=vb.ref.getSlot(cx,GET_TOKEN);
        Value v=(vs != null ? vs.getValue() : null);
        ObjectValue ov=((v instanceof ObjectValue) ? (ObjectValue)(v) : null);
        buf.append((ov != null) ? ov.getValue() : "String_Node_Str");
      }
      buf.append("String_Node_Str");
    }
    buf.append("String_Node_Str");
  }
  if (this.def instanceof PackageDefinitionNode) {
    PackageDefinitionNode pd=(PackageDefinitionNode)(this.def);
    tagname="String_Node_Str";
    debug_name="String_Node_Str";
    metaData=null;
    buf.append("String_Node_Str");
    buf.append(tagname);
    buf.append("String_Node_Str");
    buf.append((pd.name.id != null ? pd.name.id.pkg_part : "String_Node_Str"));
    buf.append("String_Node_Str");
    buf.append((pd.name.id != null ? pd.name.id.def_part : "String_Node_Str"));
    buf.append("String_Node_Str");
    buf.append((pd.name.id != null ? pd.name.id.pkg_part : "String_Node_Str"));
    buf.append("String_Node_Str");
    buf.append((pd.name.id != null ? pd.name.id.def_part : "String_Node_Str"));
    buf.append("String_Node_Str");
  }
  if (this.def instanceof ClassDefinitionNode) {
    ClassDefinitionNode cd=(ClassDefinitionNode)this.def;
    if (cd.metaData.items.at(0) != this)     return buf;
    debug_name=cd.debug_name;
    metaData=cd.metaData;
    InterfaceDefinitionNode id=null;
    if (this.def instanceof InterfaceDefinitionNode) {
      tagname="String_Node_Str";
      id=(InterfaceDefinitionNode)(this.def);
    }
 else {
      tagname="String_Node_Str";
    }
    buf.append("String_Node_Str");
    buf.append(tagname);
    buf.append("String_Node_Str");
    buf.append(cd.name.name);
    buf.append("String_Node_Str");
    buf.append(cd.debug_name);
    if (cd.cx.input != null && cd.cx.input.origin.length() != 0) {
      buf.append("String_Node_Str");
      buf.append(cd.cx.input.origin);
    }
    buf.append("String_Node_Str");
    buf.append(cd.cframe.builder.classname.ns.name);
    buf.append("String_Node_Str");
    buf.append(getAccessKindFromNS(cd.cframe.builder.classname.ns));
    if (id != null) {
      buf.append("String_Node_Str");
      if (id.interfaces != null) {
        Value firstV=id.interfaces.values.get(0);
        for (        Value v : id.interfaces.values) {
          ReferenceValue rv=(ReferenceValue)v;
          if (v != firstV) {
            buf.append("String_Node_Str");
          }
          Slot s=rv.getSlot(cx,GET_TOKEN);
          buf.append((s == null || s.getDebugName().length() == 0) ? rv.name : s.getDebugName());
        }
      }
 else {
        buf.append("String_Node_Str");
      }
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      if (cd.baseref != null) {
        Slot s=cd.baseref.getSlot(cx,GET_TOKEN);
        buf.append((s == null || s.getDebugName().length() == 0) ? "String_Node_Str" : s.getDebugName());
      }
 else {
        buf.append("String_Node_Str");
      }
      buf.append("String_Node_Str");
      if (cd.interfaces != null) {
        buf.append("String_Node_Str");
        Value firstV=cd.interfaces.values.get(0);
        for (        Value v : cd.interfaces.values) {
          ReferenceValue rv=(ReferenceValue)v;
          if (v != firstV) {
            buf.append("String_Node_Str");
          }
          Slot s=rv.getSlot(cx,GET_TOKEN);
          buf.append((s == null || s.getDebugName().length() == 0) ? rv.name : s.getDebugName());
        }
        buf.append("String_Node_Str");
      }
    }
    AttributeListNode attrs=cd.attrs;
    if (attrs != null) {
      buf.append("String_Node_Str");
      buf.append(attrs.hasFinal ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
      buf.append(attrs.hasDynamic ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
    }
    buf.append("String_Node_Str");
  }
  if (values != null) {
    for (    Value v : values) {
      if (v instanceof MetaDataEvaluator.KeylessValue) {
        MetaDataEvaluator.KeylessValue ov=(MetaDataEvaluator.KeylessValue)v;
        buf.append(ov.obj);
        continue;
      }
      if (v instanceof MetaDataEvaluator.KeyValuePair) {
        MetaDataEvaluator.KeyValuePair kv=(MetaDataEvaluator.KeyValuePair)v;
        buf.append("String_Node_Str").append(kv.key).append("String_Node_Str").append(kv.obj).append("String_Node_Str").append(kv.key).append("String_Node_Str");
        continue;
      }
    }
  }
 else   if (id != null) {
    buf.append(id);
  }
  if (this.def != null && this.def.metaData != null) {
    int numItems=this.def.metaData.items.size();
    for (int x=0; x < numItems; x++) {
      Node md=this.def.metaData.items.at(x);
      MetaDataNode mdi=(md instanceof MetaDataNode) ? (MetaDataNode)(md) : null;
      if (mdi != null && mdi.id != null) {
        if (mdi.id.equals("String_Node_Str") || mdi.id.equals("String_Node_Str") || mdi.id.equals("String_Node_Str")) {
          if (x + 1 < numItems) {
            Node next=this.def.metaData.items.at(x + 1);
            DocCommentNode metaDataComment=(next instanceof DocCommentNode) ? (DocCommentNode)next : null;
            if ((metaDataComment != null) && (metaDataComment.metaData != mdi))             metaDataComment=null;
            if (metaDataComment != null) {
              metaDataComment.emitMetaDataComment(buf,debug_name,mdi,false);
              x++;
            }
 else {
              emitMetaDataComment(buf,debug_name,mdi,true);
            }
          }
 else {
            emitMetaDataComment(buf,debug_name,mdi,true);
          }
        }
 else         if (mdi.id.equals("String_Node_Str") || mdi.id.equals("String_Node_Str") || mdi.id.equals("String_Node_Str")|| mdi.id.equals("String_Node_Str")) {
          emitMetaDataComment(buf,debug_name,mdi,true);
        }
      }
    }
  }
  if (!"String_Node_Str".equals(tagname)) {
    buf.append("String_Node_Str");
    buf.append(tagname);
    buf.append("String_Node_Str");
  }
 else {
    if (this.def instanceof NamespaceDefinitionNode) {
      NamespaceDefinitionNode nd=(NamespaceDefinitionNode)(this.def);
      if (nd != null)       buf.append("String_Node_Str").append(nd.debug_name).append("String_Node_Str");
    }
  }
  return buf;
}

Fixed version (ground truth):
public StringBuffer emit(Context cx,StringBuffer buf){
  String tagname="String_Node_Str";
  StatementListNode metaData=null;
  String debug_name="String_Node_Str";
  if (this.def instanceof FunctionDefinitionNode) {
    FunctionDefinitionNode fd=(FunctionDefinitionNode)this.def;
    debug_name=fd.fexpr.debug_name;
    metaData=fd.metaData;
    tagname="String_Node_Str";
    buf.append("String_Node_Str");
    buf.append(fd.name.identifier.name);
    buf.append("String_Node_Str");
    buf.append(fd.fexpr.debug_name);
    buf.append("String_Node_Str");
    AttributeListNode attrs=fd.attrs;
    if (attrs != null) {
      buf.append("String_Node_Str");
      buf.append(attrs.hasStatic ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
      buf.append(attrs.hasFinal ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
      buf.append(attrs.hasOverride ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
    }
    fd.fexpr.signature.toCanonicalString(cx,buf);
    buf.append("String_Node_Str");
  }
  if (this.def instanceof VariableDefinitionNode) {
    VariableDefinitionNode vd=(VariableDefinitionNode)this.def;
    VariableBindingNode vb=(VariableBindingNode)(vd.list.items.get(0));
    debug_name=vb.debug_name;
    metaData=vd.metaData;
    tagname="String_Node_Str";
    buf.append("String_Node_Str");
    buf.append(tagname);
    buf.append("String_Node_Str");
    buf.append(vb.variable.identifier.name);
    buf.append("String_Node_Str");
    buf.append(vb.debug_name);
    buf.append("String_Node_Str");
    if (vb.typeref != null) {
      buf.append(getRefName(cx,vb.typeref));
    }
    buf.append("String_Node_Str");
    AttributeListNode attrs=vd.attrs;
    if (attrs != null) {
      buf.append("String_Node_Str");
      buf.append(attrs.hasStatic ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
    }
    Slot s=vb.ref.getSlot(cx);
    if (s != null) {
      buf.append("String_Node_Str");
      buf.append(s.isConst() ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
    }
    if (vb.initializer != null) {
      buf.append("String_Node_Str");
      if (vb.initializer instanceof LiteralNumberNode) {
        buf.append(((LiteralNumberNode)(vb.initializer)).value);
      }
 else       if (vb.initializer instanceof LiteralStringNode) {
        buf.append(escapeXml(((LiteralStringNode)(vb.initializer)).value));
      }
 else       if (vb.initializer instanceof LiteralNullNode) {
        buf.append("String_Node_Str");
      }
 else       if (vb.initializer instanceof LiteralBooleanNode) {
        buf.append((((LiteralBooleanNode)(vb.initializer)).value) ? "String_Node_Str" : "String_Node_Str");
      }
 else       if (vb.initializer instanceof MemberExpressionNode) {
        MemberExpressionNode mb=(MemberExpressionNode)(vb.initializer);
        Slot vs=(mb.ref != null ? mb.ref.getSlot(cx,GET_TOKEN) : null);
        Value v=(vs != null ? vs.getValue() : null);
        ObjectValue ov=((v instanceof ObjectValue) ? (ObjectValue)(v) : null);
        buf.append((ov != null) ? ov.getValue() : "String_Node_Str");
      }
 else {
        Slot vs=vb.ref.getSlot(cx,GET_TOKEN);
        Value v=(vs != null ? vs.getValue() : null);
        ObjectValue ov=((v instanceof ObjectValue) ? (ObjectValue)(v) : null);
        buf.append((ov != null) ? ov.getValue() : "String_Node_Str");
      }
      buf.append("String_Node_Str");
    }
    buf.append("String_Node_Str");
  }
  if (this.def instanceof PackageDefinitionNode) {
    PackageDefinitionNode pd=(PackageDefinitionNode)(this.def);
    tagname="String_Node_Str";
    debug_name="String_Node_Str";
    metaData=null;
    buf.append("String_Node_Str");
    buf.append(tagname);
    buf.append("String_Node_Str");
    buf.append((pd.name.id != null ? pd.name.id.pkg_part : "String_Node_Str"));
    buf.append("String_Node_Str");
    buf.append((pd.name.id != null ? pd.name.id.def_part : "String_Node_Str"));
    buf.append("String_Node_Str");
    buf.append((pd.name.id != null ? pd.name.id.pkg_part : "String_Node_Str"));
    buf.append("String_Node_Str");
    buf.append((pd.name.id != null ? pd.name.id.def_part : "String_Node_Str"));
    buf.append("String_Node_Str");
  }
  if (this.def instanceof ClassDefinitionNode) {
    ClassDefinitionNode cd=(ClassDefinitionNode)this.def;
    if (cd.metaData.items.at(0) != this)     return buf;
    debug_name=cd.debug_name;
    metaData=cd.metaData;
    InterfaceDefinitionNode id=null;
    if (this.def instanceof InterfaceDefinitionNode) {
      tagname="String_Node_Str";
      id=(InterfaceDefinitionNode)(this.def);
    }
 else {
      tagname="String_Node_Str";
    }
    buf.append("String_Node_Str");
    buf.append(tagname);
    buf.append("String_Node_Str");
    buf.append(cd.name.name);
    buf.append("String_Node_Str");
    buf.append(cd.debug_name);
    if (cd.cx.input != null && cd.cx.input.origin.length() != 0) {
      buf.append("String_Node_Str");
      buf.append(cd.cx.input.origin);
    }
    buf.append("String_Node_Str");
    buf.append(cd.cframe.builder.classname.ns.name);
    buf.append("String_Node_Str");
    buf.append(getAccessKindFromNS(cd.cframe.builder.classname.ns));
    if (id != null) {
      buf.append("String_Node_Str");
      if (id.interfaces != null) {
        Value firstV=id.interfaces.values.get(0);
        for (        Value v : id.interfaces.values) {
          ReferenceValue rv=(ReferenceValue)v;
          if (v != firstV) {
            buf.append("String_Node_Str");
          }
          Slot s=rv.getSlot(cx,GET_TOKEN);
          buf.append((s == null || s.getDebugName().length() == 0) ? rv.name : s.getDebugName());
        }
      }
 else {
        buf.append("String_Node_Str");
      }
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      if (cd.baseref != null) {
        Slot s=cd.baseref.getSlot(cx,GET_TOKEN);
        buf.append((s == null || s.getDebugName().length() == 0) ? "String_Node_Str" : s.getDebugName());
      }
 else {
        buf.append("String_Node_Str");
      }
      buf.append("String_Node_Str");
      if (cd.interfaces != null) {
        buf.append("String_Node_Str");
        Value firstV=cd.interfaces.values.get(0);
        for (        Value v : cd.interfaces.values) {
          ReferenceValue rv=(ReferenceValue)v;
          if (v != firstV) {
            buf.append("String_Node_Str");
          }
          Slot s=rv.getSlot(cx,GET_TOKEN);
          buf.append((s == null || s.getDebugName().length() == 0) ? rv.name : s.getDebugName());
        }
        buf.append("String_Node_Str");
      }
    }
    AttributeListNode attrs=cd.attrs;
    if (attrs != null) {
      buf.append("String_Node_Str");
      buf.append(attrs.hasFinal ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
      buf.append(attrs.hasDynamic ? "String_Node_Str" : "String_Node_Str");
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      buf.append("String_Node_Str");
    }
    buf.append("String_Node_Str");
  }
  if (values != null) {
    for (    Value v : values) {
      if (v instanceof MetaDataEvaluator.KeylessValue) {
        MetaDataEvaluator.KeylessValue ov=(MetaDataEvaluator.KeylessValue)v;
        buf.append(ov.obj);
        continue;
      }
      if (v instanceof MetaDataEvaluator.KeyValuePair) {
        MetaDataEvaluator.KeyValuePair kv=(MetaDataEvaluator.KeyValuePair)v;
        buf.append("String_Node_Str").append(kv.key).append("String_Node_Str").append(kv.obj).append("String_Node_Str").append(kv.key).append("String_Node_Str");
        continue;
      }
    }
  }
 else   if (id != null) {
    buf.append(id);
  }
  if (this.def != null && this.def.metaData != null) {
    int numItems=this.def.metaData.items.size();
    for (int x=0; x < numItems; x++) {
      Node md=this.def.metaData.items.at(x);
      MetaDataNode mdi=(md instanceof MetaDataNode) ? (MetaDataNode)(md) : null;
      if (mdi != null && mdi.id != null) {
        if (mdi.id.equals("String_Node_Str") || mdi.id.equals("String_Node_Str") || mdi.id.equals("String_Node_Str")) {
          if (x + 1 < numItems) {
            Node next=this.def.metaData.items.at(x + 1);
            DocCommentNode metaDataComment=(next instanceof DocCommentNode) ? (DocCommentNode)next : null;
            if ((metaDataComment != null) && (metaDataComment.metaData != mdi))             metaDataComment=null;
            if (metaDataComment != null) {
              metaDataComment.emitMetaDataComment(buf,debug_name,mdi,false);
              x++;
            }
 else {
              emitMetaDataComment(buf,debug_name,mdi,true);
            }
          }
 else {
            emitMetaDataComment(buf,debug_name,mdi,true);
          }
        }
 else         if (mdi.id.equals("String_Node_Str") || mdi.id.equals("String_Node_Str") || mdi.id.equals("String_Node_Str")|| mdi.id.equals("String_Node_Str")) {
          emitMetaDataComment(buf,debug_name,mdi,true);
        }
      }
    }
  }
  if (!"String_Node_Str".equals(tagname)) {
    buf.append("String_Node_Str");
    buf.append(tagname);
    buf.append("String_Node_Str");
  }
 else {
    if (this.def instanceof NamespaceDefinitionNode) {
      NamespaceDefinitionNode nd=(NamespaceDefinitionNode)(this.def);
      if (nd != null)       buf.append("String_Node_Str").append(nd.debug_name).append("String_Node_Str");
    }
  }
  return buf;
}