/* * call-seq: * fix << count => integer * * Shifts _fix_ left _count_ positions (right if _count_ is negative). */ static VALUE rb_fix_lshift(x, y) VALUE x, y; { long val, width; val = NUM2LONG(x); if (!FIXNUM_P(y)) return rb_big_lshift(rb_int2big(val), y); width = FIX2LONG(y); if (width < 0) return fix_rshift(val, (unsigned long)-width); return fix_lshift(val, width); }