@Override
 public void visitIntInsn(final int opcode, final int operand) {
   checkStartCode();
   checkEndCode();
   checkOpcode(opcode, 1);
   switch (opcode) {
     case Opcodes.BIPUSH:
       checkSignedByte(operand, "Invalid operand");
       break;
     case Opcodes.SIPUSH:
       checkSignedShort(operand, "Invalid operand");
       break;
       // case Constants.NEWARRAY:
     default:
       if (operand < Opcodes.T_BOOLEAN || operand > Opcodes.T_LONG) {
         throw new IllegalArgumentException(
             "Invalid operand (must be an array type code T_...): " + operand);
       }
   }
   super.visitIntInsn(opcode, operand);
   ++insnCount;
 }