/*
 * call-seq:
 *   Integer.induced_from(obj)    =>  fixnum, bignum
 *
 * Convert <code>obj</code> to an Integer.
 */

static VALUE
rb_int_induced_from(VALUE klass, VALUE x)
{
    switch (TYPE(x)) {
      case T_FIXNUM:
      case T_BIGNUM:
        return x;
      case T_FLOAT:
      case T_RATIONAL:
        return rb_funcall(x, id_to_i, 0);
      default:
        rb_raise(rb_eTypeError, "failed to convert %s into Integer",
                 rb_obj_classname(x));
    }
}