Program: 84474
Project: 84474
Buggy source:
static void convertType(MethodVisitor mv,Class<?> arg,Class<?> target,Class<?> functional){
  if (arg.equals(target) && arg.equals(functional)) {
    return;
  }
  if (arg == Void.TYPE || target == Void.TYPE) {
    return;
  }
  if (arg.isPrimitive()) {
    Wrapper wArg=Wrapper.forPrimitiveType(arg);
    if (target.isPrimitive()) {
      widen(mv,wArg,Wrapper.forPrimitiveType(target));
    }
 else {
      String dTarget=Type.getDescriptor(target);
      Wrapper wPrimTarget=wrapperOrNullFromDescriptor(dTarget);
      if (wPrimTarget != null) {
        widen(mv,wArg,wPrimTarget);
        box(mv,wPrimTarget);
      }
 else {
        box(mv,wArg);
        cast(mv,wrapperName(wArg),dTarget);
      }
    }
  }
 else {
    String dArg=Type.getDescriptor(arg);
    String dSrc;
    if (functional.isPrimitive()) {
      dSrc=dArg;
    }
 else {
      dSrc=Type.getDescriptor(functional);
      cast(mv,dArg,dSrc);
    }
    String dTarget=Type.getDescriptor(target);
    if (target.isPrimitive()) {
      Wrapper wTarget=toWrapper(dTarget);
      Wrapper wps=wrapperOrNullFromDescriptor(dSrc);
      if (wps != null) {
        if (wps.isSigned() || wps.isFloating()) {
          unbox(mv,wrapperName(wps),wTarget);
        }
 else {
          unbox(mv,wrapperName(wps),wps);
          widen(mv,wps,wTarget);
        }
      }
 else {
        String intermediate;
        if (wTarget.isSigned() || wTarget.isFloating()) {
          intermediate=DYVIL_LANG_NUMBER;
        }
 else {
          intermediate=wrapperName(wTarget);
        }
        cast(mv,dSrc,intermediate);
        unbox(mv,intermediate,wTarget);
      }
    }
 else {
      cast(mv,dSrc,dTarget);
    }
  }
}

Fixed version (ground truth):
static void convertType(MethodVisitor mv,Class<?> arg,Class<?> target,Class<?> functional){
  if (arg.equals(target) && arg.equals(functional)) {
    return;
  }
  if (arg == Void.TYPE || target == Void.TYPE) {
    return;
  }
  if (arg.isPrimitive()) {
    Wrapper wArg=Wrapper.forPrimitiveType(arg);
    if (target.isPrimitive()) {
      widen(mv,wArg,Wrapper.forPrimitiveType(target));
    }
 else {
      String dTarget=Type.getDescriptor(target);
      Wrapper wPrimTarget=wrapperOrNullFromDescriptor(dTarget);
      if (wPrimTarget != null) {
        widen(mv,wArg,wPrimTarget);
        box(mv,wPrimTarget);
      }
 else {
        box(mv,wArg);
        cast(mv,wrapperName(wArg),dTarget);
      }
    }
  }
 else {
    String dArg=Type.getDescriptor(arg);
    String dSrc;
    if (functional.isPrimitive()) {
      dSrc=dArg;
    }
 else {
      dSrc=Type.getDescriptor(functional);
      cast(mv,dArg,dSrc);
    }
    String dTarget=Type.getDescriptor(target);
    if (target.isPrimitive()) {
      Wrapper wTarget=toWrapper(dTarget);
      Wrapper wps=wrapperOrNullFromDescriptor(dSrc);
      if (wps != null) {
        if (wps.isSigned() || wps.isFloating()) {
          unbox(mv,wrapperName(wps),wTarget);
        }
 else {
          unbox(mv,wrapperName(wps),wps);
          widen(mv,wps,wTarget);
        }
      }
 else {
        String intermediate=wrapperName(wTarget);
        cast(mv,dSrc,intermediate);
        unbox(mv,intermediate,wTarget);
      }
    }
 else {
      cast(mv,dSrc,dTarget);
    }
  }
}