Program: 82824
Project: 82824
Buggy source:
@Override public IValue checkArguments(MarkerList markers,SourcePosition position,IContext context,IValue receiver,ArgumentList arguments,GenericData genericData){
  final ParameterList parameters=this.getParameters();
  if (receiver != null) {
    final int mod=this.attributes.flags() & Modifiers.INFIX;
    if (mod == Modifiers.INFIX && !receiver.isClassAccess()) {
      final IParameter parameter=parameters.get(0);
      final IType paramType=parameter.getCovariantType();
      updateReceiverType(receiver,genericData);
      receiver=TypeChecker.convertValue(receiver,paramType,genericData,markers,context,TypeChecker.markerSupplier("String_Node_Str",this.name));
      updateReceiverType(receiver,genericData);
      for (int i=1, count=parameters.size(); i < count; i++) {
        arguments.checkValue(i - 1,parameters.get(i),genericData,position,markers,context);
      }
      if (genericData != null) {
        this.checkTypeVarsInferred(markers,position,genericData);
      }
      return receiver;
    }
    updateReceiverType(receiver,genericData);
    if ((mod & Modifiers.STATIC) != 0) {
      if (!receiver.isClassAccess()) {
        markers.add(Markers.semantic(position,"String_Node_Str",this.name));
      }
 else       if (this.getReceiverType().getTheClass() == this.enclosingClass && receiver.getType().getTheClass() != this.enclosingClass) {
        markers.add(Markers.semantic(position,"String_Node_Str",this.name,this.enclosingClass.getFullName()));
      }
      receiver=receiver.asIgnoredClassAccess();
    }
 else     if (receiver.isClassAccess()) {
      if (!receiver.getType().getTheClass().isObject()) {
        markers.add(Markers.semanticError(position,"String_Node_Str",this.name));
      }
    }
 else {
      receiver=TypeChecker.convertValue(receiver,this.getReceiverType(),receiver.getType(),markers,context,TypeChecker.markerSupplier("String_Node_Str",this.name));
    }
    if (receiver != null) {
      updateReceiverType(receiver,genericData);
    }
  }
 else   if (!this.isStatic()) {
    if (context.hasStaticAccess()) {
      markers.add(Markers.semantic(position,"String_Node_Str",this.name));
    }
 else {
      final IType receiverType=this.enclosingClass.getThisType();
      receiver=new ThisExpr(position,receiverType,markers,context);
      if (genericData != null) {
        genericData.setFallbackTypeContext(receiverType);
      }
      if (!this.enclosingClass.isAnonymous()) {
        markers.add(Markers.semantic(position,"String_Node_Str",this.name.unqualified));
      }
    }
  }
  for (int i=0, count=parameters.size(); i < count; i++) {
    arguments.checkValue(i,parameters.get(i),genericData,position,markers,context);
  }
  if (genericData != null) {
    this.checkTypeVarsInferred(markers,position,genericData);
  }
  return receiver;
}

Fixed version (ground truth):
@Override public IValue checkArguments(MarkerList markers,SourcePosition position,IContext context,IValue receiver,ArgumentList arguments,GenericData genericData){
  final ParameterList parameters=this.getParameters();
  if (receiver != null) {
    final int mod=this.attributes.flags() & Modifiers.INFIX;
    if (mod == Modifiers.INFIX && !receiver.isClassAccess() && !parameters.isEmpty()) {
      final IParameter parameter=parameters.get(0);
      final IType paramType=parameter.getCovariantType();
      updateReceiverType(receiver,genericData);
      receiver=TypeChecker.convertValue(receiver,paramType,genericData,markers,context,TypeChecker.markerSupplier("String_Node_Str",this.name));
      updateReceiverType(receiver,genericData);
      for (int i=1, count=parameters.size(); i < count; i++) {
        arguments.checkValue(i - 1,parameters.get(i),genericData,position,markers,context);
      }
      if (genericData != null) {
        this.checkTypeVarsInferred(markers,position,genericData);
      }
      return receiver;
    }
    updateReceiverType(receiver,genericData);
    if ((mod & Modifiers.STATIC) != 0) {
      if (!receiver.isClassAccess()) {
        markers.add(Markers.semantic(position,"String_Node_Str",this.name));
      }
 else       if (this.getReceiverType().getTheClass() == this.enclosingClass && receiver.getType().getTheClass() != this.enclosingClass) {
        markers.add(Markers.semantic(position,"String_Node_Str",this.name,this.enclosingClass.getFullName()));
      }
      receiver=receiver.asIgnoredClassAccess();
    }
 else     if (receiver.isClassAccess()) {
      if (!receiver.getType().getTheClass().isObject()) {
        markers.add(Markers.semanticError(position,"String_Node_Str",this.name));
      }
    }
 else {
      receiver=TypeChecker.convertValue(receiver,this.getReceiverType(),receiver.getType(),markers,context,TypeChecker.markerSupplier("String_Node_Str",this.name));
    }
    if (receiver != null) {
      updateReceiverType(receiver,genericData);
    }
  }
 else   if (!this.isStatic()) {
    if (context.hasStaticAccess()) {
      markers.add(Markers.semantic(position,"String_Node_Str",this.name));
    }
 else {
      final IType receiverType=this.enclosingClass.getThisType();
      receiver=new ThisExpr(position,receiverType,markers,context);
      if (genericData != null) {
        genericData.setFallbackTypeContext(receiverType);
      }
      if (!this.enclosingClass.isAnonymous()) {
        markers.add(Markers.semantic(position,"String_Node_Str",this.name.unqualified));
      }
    }
  }
  for (int i=0, count=parameters.size(); i < count; i++) {
    arguments.checkValue(i,parameters.get(i),genericData,position,markers,context);
  }
  if (genericData != null) {
    this.checkTypeVarsInferred(markers,position,genericData);
  }
  return receiver;
}