Program: 85045
Project: 85045
Buggy source:
@Override public IValue resolve(MarkerList markers,IContext context){
  int args=this.arguments.size();
  if (this.instance != null) {
    this.instance.resolve(markers,context);
  }
  if (args == 1 && this.name == Name.match) {
    MatchExpression me=Operators.getMatchExpression(this.instance,this.arguments.getFirstValue());
    if (me != null) {
      me.position=this.position;
      return me.resolve(markers,context);
    }
  }
  this.arguments.resolve(markers,context);
  if (args == 1) {
    IValue argument=this.arguments.getFirstValue();
    IValue op;
    if (this.instance != null) {
      op=Operators.get(this.instance,this.name,argument);
    }
 else {
      op=Operators.get(this.name,argument);
    }
    if (op != null) {
      op.setPosition(this.position);
      return op;
    }
  }
  IMethod method=ICall.resolveMethod(markers,context,this.instance,this.name,this.arguments);
  if (method != null) {
    this.method=method;
    return this;
  }
  if (args == 1 && this.instance != null) {
    String qualified=this.name.qualified;
    if (qualified.endsWith("String_Node_Str")) {
      String unqualified=this.name.unqualified;
      Name name=Name.get(qualified.substring(0,qualified.length() - 3),unqualified.substring(0,unqualified.length() - 1));
      IMethod method1=IContext.resolveMethod(markers,this.instance.getType(),null,name,this.arguments);
      if (method1 != null) {
        CompoundCall call=new CompoundCall(this.position);
        call.method=method1;
        call.instance=this.instance;
        call.arguments=this.arguments;
        call.name=name;
        return call;
      }
    }
  }
  if (args == 0) {
    IField field=ICall.resolveField(context,this.instance,this.name);
    if (field != null) {
      FieldAccess access=new FieldAccess(this.position);
      access.field=field;
      access.instance=this.instance;
      access.name=this.name;
      access.dotless=this.dotless;
      return access;
    }
  }
 else   if (this.instance == null) {
    IValue apply=this.resolveApply(markers,context);
    if (apply != null) {
      return apply;
    }
  }
  Marker marker;
  if (this.arguments.isEmpty()) {
    marker=markers.create(this.position,"String_Node_Str",this.name.unqualified);
  }
 else {
    marker=markers.create(this.position,"String_Node_Str",this.name.unqualified);
  }
  marker.addInfo("String_Node_Str" + this.name.qualified);
  if (this.instance != null) {
    marker.addInfo("String_Node_Str" + this.instance.getType());
  }
  StringBuilder builder=new StringBuilder("String_Node_Str");
  Util.typesToString("String_Node_Str",this.arguments,"String_Node_Str",builder);
  marker.addInfo(builder.toString());
  return this;
}

Fixed version (ground truth):
@Override public IValue resolve(MarkerList markers,IContext context){
  int args=this.arguments.size();
  if (this.instance != null) {
    this.instance=this.instance.resolve(markers,context);
  }
  if (args == 1 && this.name == Name.match) {
    MatchExpression me=Operators.getMatchExpression(this.instance,this.arguments.getFirstValue());
    if (me != null) {
      me.position=this.position;
      return me.resolve(markers,context);
    }
  }
  this.arguments.resolve(markers,context);
  if (args == 1) {
    IValue argument=this.arguments.getFirstValue();
    IValue op;
    if (this.instance != null) {
      op=Operators.get(this.instance,this.name,argument);
    }
 else {
      op=Operators.get(this.name,argument);
    }
    if (op != null) {
      op.setPosition(this.position);
      return op;
    }
  }
  IMethod method=ICall.resolveMethod(markers,context,this.instance,this.name,this.arguments);
  if (method != null) {
    this.method=method;
    return this;
  }
  if (args == 1 && this.instance != null) {
    String qualified=this.name.qualified;
    if (qualified.endsWith("String_Node_Str")) {
      String unqualified=this.name.unqualified;
      Name name=Name.get(qualified.substring(0,qualified.length() - 3),unqualified.substring(0,unqualified.length() - 1));
      IMethod method1=IContext.resolveMethod(markers,this.instance.getType(),null,name,this.arguments);
      if (method1 != null) {
        CompoundCall call=new CompoundCall(this.position);
        call.method=method1;
        call.instance=this.instance;
        call.arguments=this.arguments;
        call.name=name;
        return call;
      }
    }
  }
  if (args == 0) {
    IField field=ICall.resolveField(context,this.instance,this.name);
    if (field != null) {
      FieldAccess access=new FieldAccess(this.position);
      access.field=field;
      access.instance=this.instance;
      access.name=this.name;
      access.dotless=this.dotless;
      return access;
    }
  }
 else   if (this.instance == null) {
    IValue apply=this.resolveApply(markers,context);
    if (apply != null) {
      return apply;
    }
  }
  Marker marker;
  if (this.arguments.isEmpty()) {
    marker=markers.create(this.position,"String_Node_Str",this.name.unqualified);
  }
 else {
    marker=markers.create(this.position,"String_Node_Str",this.name.unqualified);
  }
  marker.addInfo("String_Node_Str" + this.name.qualified);
  if (this.instance != null) {
    marker.addInfo("String_Node_Str" + this.instance.getType());
  }
  StringBuilder builder=new StringBuilder("String_Node_Str");
  Util.typesToString("String_Node_Str",this.arguments,"String_Node_Str",builder);
  marker.addInfo(builder.toString());
  return this;
}