Program: 85270
Project: 85270
Buggy source:
@Override public void casePrimitiveCastInst(PrimitiveCastInst i){
  Type from=i.getFromType();
  final Type to=i.getToType();
  from.apply(new TypeSwitch(){
    @Override public void caseBooleanType(    BooleanType t){
      emitIntToTypeCast();
    }
    @Override public void caseByteType(    ByteType t){
      emitIntToTypeCast();
    }
    @Override public void caseCharType(    CharType t){
      emitIntToTypeCast();
    }
    @Override public void caseDoubleType(    DoubleType t){
      if (to.equals(IntType.v())) {
        mv.visitInsn(Opcodes.D2I);
      }
 else       if (to.equals(LongType.v())) {
        mv.visitInsn(Opcodes.D2L);
      }
 else       if (to.equals(FloatType.v())) {
        mv.visitInsn(Opcodes.D2F);
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
    @Override public void caseFloatType(    FloatType t){
      if (to.equals(IntType.v())) {
        mv.visitInsn(Opcodes.F2I);
      }
 else       if (to.equals(LongType.v())) {
        mv.visitInsn(Opcodes.F2L);
      }
 else       if (to.equals(DoubleType.v())) {
        mv.visitInsn(Opcodes.F2D);
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
    @Override public void caseIntType(    IntType t){
      emitIntToTypeCast();
    }
    @Override public void caseLongType(    LongType t){
      if (to.equals(IntType.v())) {
        mv.visitInsn(Opcodes.L2I);
      }
 else       if (to.equals(FloatType.v())) {
        mv.visitInsn(Opcodes.L2F);
      }
 else       if (to.equals(DoubleType.v())) {
        mv.visitInsn(Opcodes.L2D);
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
    @Override public void caseShortType(    ShortType t){
      emitIntToTypeCast();
    }
    @Override public void defaultCase(    Type t){
      throw new RuntimeException("String_Node_Str");
    }
    private void emitIntToTypeCast(){
      if (to.equals(ByteType.v())) {
        mv.visitInsn(Opcodes.I2B);
      }
 else       if (to.equals(CharType.v())) {
        mv.visitInsn(Opcodes.I2C);
      }
 else       if (to.equals(ShortType.v())) {
        mv.visitInsn(Opcodes.I2S);
      }
 else       if (to.equals(FloatType.v())) {
        mv.visitInsn(Opcodes.I2F);
      }
 else       if (to.equals(LongType.v())) {
        mv.visitInsn(Opcodes.I2L);
      }
 else       if (to.equals(DoubleType.v())) {
        mv.visitInsn(Opcodes.I2D);
      }
 else       if (to.equals(IntType.v())) {
      }
 else       if (to.equals(BooleanType.v())) {
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
  }
);
}

Fixed version (ground truth):
@Override public void casePrimitiveCastInst(PrimitiveCastInst i){
  Type from=i.getFromType();
  final Type to=i.getToType();
  from.apply(new TypeSwitch(){
    @Override public void caseBooleanType(    BooleanType t){
      emitIntToTypeCast();
    }
    @Override public void caseByteType(    ByteType t){
      emitIntToTypeCast();
    }
    @Override public void caseCharType(    CharType t){
      emitIntToTypeCast();
    }
    @Override public void caseDoubleType(    DoubleType t){
      if (to.equals(IntType.v())) {
        mv.visitInsn(Opcodes.D2I);
      }
 else       if (to.equals(LongType.v())) {
        mv.visitInsn(Opcodes.D2L);
      }
 else       if (to.equals(FloatType.v())) {
        mv.visitInsn(Opcodes.D2F);
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
    @Override public void caseFloatType(    FloatType t){
      if (to.equals(IntType.v())) {
        mv.visitInsn(Opcodes.F2I);
      }
 else       if (to.equals(LongType.v())) {
        mv.visitInsn(Opcodes.F2L);
      }
 else       if (to.equals(DoubleType.v())) {
        mv.visitInsn(Opcodes.F2D);
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
    @Override public void caseIntType(    IntType t){
      emitIntToTypeCast();
    }
    @Override public void caseLongType(    LongType t){
      if (to.equals(IntType.v())) {
        mv.visitInsn(Opcodes.L2I);
      }
 else       if (to.equals(FloatType.v())) {
        mv.visitInsn(Opcodes.L2F);
      }
 else       if (to.equals(DoubleType.v())) {
        mv.visitInsn(Opcodes.L2D);
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
    @Override public void caseShortType(    ShortType t){
      emitIntToTypeCast();
    }
    @Override public void defaultCase(    Type t){
      throw new RuntimeException("String_Node_Str" + t);
    }
    private void emitIntToTypeCast(){
      if (to.equals(ByteType.v())) {
        mv.visitInsn(Opcodes.I2B);
      }
 else       if (to.equals(CharType.v())) {
        mv.visitInsn(Opcodes.I2C);
      }
 else       if (to.equals(ShortType.v())) {
        mv.visitInsn(Opcodes.I2S);
      }
 else       if (to.equals(FloatType.v())) {
        mv.visitInsn(Opcodes.I2F);
      }
 else       if (to.equals(LongType.v())) {
        mv.visitInsn(Opcodes.I2L);
      }
 else       if (to.equals(DoubleType.v())) {
        mv.visitInsn(Opcodes.I2D);
      }
 else       if (to.equals(IntType.v())) {
      }
 else       if (to.equals(BooleanType.v())) {
      }
 else {
        throw new RuntimeException("String_Node_Str");
      }
    }
  }
);
}