[前][次][番号順一覧][スレッド一覧]

ruby-changes:30813

From: nobu <ko1@a...>
Date: Mon, 9 Sep 2013 14:17:19 +0900 (JST)
Subject: [ruby-changes:30813] nobu:r42892 (trunk): complex.c, rational.c: use RB_TYPE_P

nobu	2013-09-09 14:17:13 +0900 (Mon, 09 Sep 2013)

  New Revision: 42892

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=42892

  Log:
    complex.c, rational.c: use RB_TYPE_P
    
    * complex.c, rational.c: use RB_TYPE_P() for special classes instead
      of switch with TYPE().

  Modified files:
    trunk/complex.c
    trunk/rational.c
Index: complex.c
===================================================================
--- complex.c	(revision 42891)
+++ complex.c	(revision 42892)
@@ -210,17 +210,16 @@ f_negative_p(VALUE x) https://github.com/ruby/ruby/blob/trunk/complex.c#L210
 inline static VALUE
 f_zero_p(VALUE x)
 {
-    switch (TYPE(x)) {
-      case T_FIXNUM:
+    if (RB_TYPE_P(x, T_FIXNUM)) {
 	return f_boolcast(FIX2LONG(x) == 0);
-      case T_BIGNUM:
+    }
+    else if (RB_TYPE_P(x, T_BIGNUM)) {
 	return Qfalse;
-      case T_RATIONAL:
-      {
-	  VALUE num = RRATIONAL(x)->num;
+    }
+    else if (RB_TYPE_P(x, T_RATIONAL)) {
+	VALUE num = RRATIONAL(x)->num;
 
-	  return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == 0);
-      }
+	return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == 0);
     }
     return rb_funcall(x, id_eqeq_p, 1, ZERO);
 }
@@ -230,19 +229,18 @@ f_zero_p(VALUE x) https://github.com/ruby/ruby/blob/trunk/complex.c#L229
 inline static VALUE
 f_one_p(VALUE x)
 {
-    switch (TYPE(x)) {
-      case T_FIXNUM:
+    if (RB_TYPE_P(x, T_FIXNUM)) {
 	return f_boolcast(FIX2LONG(x) == 1);
-      case T_BIGNUM:
+    }
+    else if (RB_TYPE_P(x, T_BIGNUM)) {
 	return Qfalse;
-      case T_RATIONAL:
-      {
-	  VALUE num = RRATIONAL(x)->num;
-	  VALUE den = RRATIONAL(x)->den;
-
-	  return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == 1 &&
-			    FIXNUM_P(den) && FIX2LONG(den) == 1);
-      }
+    }
+    else if (RB_TYPE_P(x, T_RATIONAL)) {
+	VALUE num = RRATIONAL(x)->num;
+	VALUE den = RRATIONAL(x)->den;
+
+	return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == 1 &&
+			  FIXNUM_P(den) && FIX2LONG(den) == 1);
     }
     return rb_funcall(x, id_eqeq_p, 1, ONE);
 }
@@ -383,13 +381,10 @@ nucomp_canonicalization(int f) https://github.com/ruby/ruby/blob/trunk/complex.c#L381
 inline static void
 nucomp_real_check(VALUE num)
 {
-    switch (TYPE(num)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
-      case T_FLOAT:
-      case T_RATIONAL:
-	break;
-      default:
+    if (!RB_TYPE_P(x, T_FIXNUM) &&
+	!RB_TYPE_P(x, T_BIGNUM) &&
+	!RB_TYPE_P(x, T_FLOAT) &&
+	!RB_TYPE_P(x, T_RATIONAL)) {
 	if (!k_numeric_p(num) || !f_real_p(num))
 	    rb_raise(rb_eTypeError, "not a real");
     }
@@ -1242,11 +1237,9 @@ f_signbit(VALUE x) https://github.com/ruby/ruby/blob/trunk/complex.c#L1237
     !defined(signbit)
     extern int signbit(double);
 #endif
-    switch (TYPE(x)) {
-      case T_FLOAT: {
+    if (RB_TYPE_P(x, T_FLOAT)) {
 	double f = RFLOAT_VALUE(x);
 	return f_boolcast(!isnan(f) && signbit(f));
-      }
     }
     return f_negative_p(x);
 }
@@ -1887,30 +1880,17 @@ nucomp_s_convert(int argc, VALUE *argv, https://github.com/ruby/ruby/blob/trunk/complex.c#L1880
     backref = rb_backref_get();
     rb_match_busy(backref);
 
-    switch (TYPE(a1)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
-      case T_FLOAT:
-	break;
-      case T_STRING:
+    if (RB_TYPE_P(a1, T_STRING)) {
 	a1 = string_to_c_strict(a1);
-	break;
     }
 
-    switch (TYPE(a2)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
-      case T_FLOAT:
-	break;
-      case T_STRING:
+    if (RB_TYPE_P(a2, T_STRING)) {
 	a2 = string_to_c_strict(a2);
-	break;
     }
 
     rb_backref_set(backref);
 
-    switch (TYPE(a1)) {
-      case T_COMPLEX:
+    if (RB_TYPE_P(a1, T_COMPLEX)) {
 	{
 	    get_dat1(a1);
 
@@ -1919,8 +1899,7 @@ nucomp_s_convert(int argc, VALUE *argv, https://github.com/ruby/ruby/blob/trunk/complex.c#L1899
 	}
     }
 
-    switch (TYPE(a2)) {
-      case T_COMPLEX:
+    if (RB_TYPE_P(a2, T_COMPLEX)) {
 	{
 	    get_dat1(a2);
 
@@ -1929,8 +1908,7 @@ nucomp_s_convert(int argc, VALUE *argv, https://github.com/ruby/ruby/blob/trunk/complex.c#L1908
 	}
     }
 
-    switch (TYPE(a1)) {
-      case T_COMPLEX:
+    if (RB_TYPE_P(a1, T_COMPLEX)) {
 	if (argc == 1 || (k_exact_zero_p(a2)))
 	    return a1;
     }
Index: rational.c
===================================================================
--- rational.c	(revision 42891)
+++ rational.c	(revision 42892)
@@ -190,17 +190,16 @@ f_negative_p(VALUE x) https://github.com/ruby/ruby/blob/trunk/rational.c#L190
 inline static VALUE
 f_zero_p(VALUE x)
 {
-    switch (TYPE(x)) {
-      case T_FIXNUM:
+    if (RB_TYPE_P(x, T_FIXNUM)) {
 	return f_boolcast(FIX2LONG(x) == 0);
-      case T_BIGNUM:
+    }
+    else if (RB_TYPE_P(x, T_BIGNUM)) {
 	return Qfalse;
-      case T_RATIONAL:
-      {
-	  VALUE num = RRATIONAL(x)->num;
+    }
+    else if (RB_TYPE_P(x, T_RATIONAL)) {
+	VALUE num = RRATIONAL(x)->num;
 
-	  return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == 0);
-      }
+	return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == 0);
     }
     return rb_funcall(x, id_eqeq_p, 1, ZERO);
 }
@@ -210,19 +209,18 @@ f_zero_p(VALUE x) https://github.com/ruby/ruby/blob/trunk/rational.c#L209
 inline static VALUE
 f_one_p(VALUE x)
 {
-    switch (TYPE(x)) {
-      case T_FIXNUM:
+    if (RB_TYPE_P(x, T_FIXNUM)) {
 	return f_boolcast(FIX2LONG(x) == 1);
-      case T_BIGNUM:
+    }
+    else if (RB_TYPE_P(x, T_BIGNUM)) {
 	return Qfalse;
-      case T_RATIONAL:
-      {
-	  VALUE num = RRATIONAL(x)->num;
-	  VALUE den = RRATIONAL(x)->den;
-
-	  return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == 1 &&
-			    FIXNUM_P(den) && FIX2LONG(den) == 1);
-      }
+    }
+    else if (RB_TYPE_P(x, T_RATIONAL)) {
+	VALUE num = RRATIONAL(x)->num;
+	VALUE den = RRATIONAL(x)->den;
+
+	return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == 1 &&
+			  FIXNUM_P(den) && FIX2LONG(den) == 1);
     }
     return rb_funcall(x, id_eqeq_p, 1, ONE);
 }
@@ -230,19 +228,18 @@ f_one_p(VALUE x) https://github.com/ruby/ruby/blob/trunk/rational.c#L228
 inline static VALUE
 f_minus_one_p(VALUE x)
 {
-    switch (TYPE(x)) {
-      case T_FIXNUM:
+    if (RB_TYPE_P(x, T_FIXNUM)) {
 	return f_boolcast(FIX2LONG(x) == -1);
-      case T_BIGNUM:
+    }
+    else if (RB_TYPE_P(x, T_BIGNUM)) {
 	return Qfalse;
-      case T_RATIONAL:
-      {
-	  VALUE num = RRATIONAL(x)->num;
-	  VALUE den = RRATIONAL(x)->den;
-
-	  return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == -1 &&
-			    FIXNUM_P(den) && FIX2LONG(den) == 1);
-      }
+    }
+    else if (RB_TYPE_P(x, T_RATIONAL)) {
+	VALUE num = RRATIONAL(x)->num;
+	VALUE den = RRATIONAL(x)->den;
+
+	return f_boolcast(FIXNUM_P(num) && FIX2LONG(num) == -1 &&
+			  FIXNUM_P(den) && FIX2LONG(den) == 1);
     }
     return rb_funcall(x, id_eqeq_p, 1, INT2FIX(-1));
 }
@@ -376,7 +373,7 @@ inline static VALUE https://github.com/ruby/ruby/blob/trunk/rational.c#L373
 f_gcd(VALUE x, VALUE y)
 {
 #ifdef USE_GMP
-    if (TYPE(x) == T_BIGNUM && TYPE(y) == T_BIGNUM) {
+    if (RB_TYPE_P(x, T_BIGNUM) && RB_TYPE_P(y, T_BIGNUM)) {
         long xn = RBIGNUM_LEN(x);
         long yn = RBIGNUM_LEN(y);
         if (GMP_GCD_DIGITS <= xn || GMP_GCD_DIGITS <= yn)
@@ -502,11 +499,7 @@ nurat_canonicalization(int f) https://github.com/ruby/ruby/blob/trunk/rational.c#L499
 inline static void
 nurat_int_check(VALUE num)
 {
-    switch (TYPE(num)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
-	break;
-      default:
+    if (!(RB_TYPE_P(num, T_FIXNUM) || RB_TYPE_P(num, T_BIGNUM))) {
 	if (!k_numeric_p(num) || !f_integer_p(num))
 	    rb_raise(rb_eTypeError, "not an integer");
     }
@@ -783,9 +776,7 @@ f_addsub(VALUE self, VALUE anum, VALUE a https://github.com/ruby/ruby/blob/trunk/rational.c#L776
 static VALUE
 nurat_add(VALUE self, VALUE other)
 {
-    switch (TYPE(other)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
+    if (RB_TYPE_P(other, T_FIXNUM) || RB_TYPE_P(other, T_BIGNUM)) {
 	{
 	    get_dat1(self);
 
@@ -793,9 +784,11 @@ nurat_add(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L784
 			    dat->num, dat->den,
 			    other, ONE, '+');
 	}
-      case T_FLOAT:
+    }
+    else if (RB_TYPE_P(other, T_FLOAT)) {
 	return f_add(f_to_f(self), other);
-      case T_RATIONAL:
+    }
+    else if (RB_TYPE_P(other, T_RATIONAL)) {
 	{
 	    get_dat2(self, other);
 
@@ -803,7 +796,8 @@ nurat_add(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L796
 			    adat->num, adat->den,
 			    bdat->num, bdat->den, '+');
 	}
-      default:
+    }
+    else {
 	return rb_num_coerce_bin(self, other, '+');
     }
 }
@@ -823,9 +817,7 @@ nurat_add(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L817
 static VALUE
 nurat_sub(VALUE self, VALUE other)
 {
-    switch (TYPE(other)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
+    if (RB_TYPE_P(other, T_FIXNUM) || RB_TYPE_P(other, T_BIGNUM)) {
 	{
 	    get_dat1(self);
 
@@ -833,9 +825,11 @@ nurat_sub(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L825
 			    dat->num, dat->den,
 			    other, ONE, '-');
 	}
-      case T_FLOAT:
+    }
+    else if (RB_TYPE_P(other, T_FLOAT)) {
 	return f_sub(f_to_f(self), other);
-      case T_RATIONAL:
+    }
+    else if (RB_TYPE_P(other, T_RATIONAL)) {
 	{
 	    get_dat2(self, other);
 
@@ -843,7 +837,8 @@ nurat_sub(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L837
 			    adat->num, adat->den,
 			    bdat->num, bdat->den, '-');
 	}
-      default:
+    }
+    else {
 	return rb_num_coerce_bin(self, other, '-');
     }
 }
@@ -902,9 +897,7 @@ f_muldiv(VALUE self, VALUE anum, VALUE a https://github.com/ruby/ruby/blob/trunk/rational.c#L897
 static VALUE
 nurat_mul(VALUE self, VALUE other)
 {
-    switch (TYPE(other)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
+    if (RB_TYPE_P(other, T_FIXNUM) || RB_TYPE_P(other, T_BIGNUM)) {
 	{
 	    get_dat1(self);
 
@@ -912,9 +905,11 @@ nurat_mul(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L905
 			    dat->num, dat->den,
 			    other, ONE, '*');
 	}
-      case T_FLOAT:
+    }
+    else if (RB_TYPE_P(other, T_FLOAT)) {
 	return f_mul(f_to_f(self), other);
-      case T_RATIONAL:
+    }
+    else if (RB_TYPE_P(other, T_RATIONAL)) {
 	{
 	    get_dat2(self, other);
 
@@ -922,7 +917,8 @@ nurat_mul(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L917
 			    adat->num, adat->den,
 			    bdat->num, bdat->den, '*');
 	}
-      default:
+    }
+    else {
 	return rb_num_coerce_bin(self, other, '*');
     }
 }
@@ -943,9 +939,7 @@ nurat_mul(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L939
 static VALUE
 nurat_div(VALUE self, VALUE other)
 {
-    switch (TYPE(other)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
+    if (RB_TYPE_P(other, T_FIXNUM) || RB_TYPE_P(other, T_BIGNUM)) {
 	if (f_zero_p(other))
 	    rb_raise_zerodiv();
 	{
@@ -955,7 +949,8 @@ nurat_div(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L949
 			    dat->num, dat->den,
 			    other, ONE, '/');
 	}
-      case T_FLOAT:
+    }
+    else if (RB_TYPE_P(other, T_FLOAT)) {
 	{
 	    double x = RFLOAT_VALUE(other), den;
 	    get_dat1(self);
@@ -967,7 +962,8 @@ nurat_div(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L962
 	    }
 	}
 	return rb_funcall(f_to_f(self), '/', 1, other);
-      case T_RATIONAL:
+    }
+    else if (RB_TYPE_P(other, T_RATIONAL)) {
 	if (f_zero_p(other))
 	    rb_raise_zerodiv();
 	{
@@ -981,7 +977,8 @@ nurat_div(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L977
 			    adat->num, adat->den,
 			    bdat->num, bdat->den, '/');
 	}
-      default:
+    }
+    else {
 	return rb_num_coerce_bin(self, other, '/');
     }
 }
@@ -1062,8 +1059,7 @@ nurat_expt(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1059
     }
 
     /* General case */
-    switch (TYPE(other)) {
-      case T_FIXNUM:
+    if (RB_TYPE_P(other, T_FIXNUM)) {
 	{
 	    VALUE num, den;
 
@@ -1085,13 +1081,15 @@ nurat_expt(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1081
 	    }
 	    return f_rational_new2(CLASS_OF(self), num, den);
 	}
-      case T_BIGNUM:
+    }
+    else if (RB_TYPE_P(other, T_BIGNUM)) {
 	rb_warn("in a**b, b may be too big");
-	/* fall through */
-      case T_FLOAT:
-      case T_RATIONAL:
 	return f_expt(f_to_f(self), other);
-      default:
+    }
+    else if (RB_TYPE_P(other, T_FLOAT) || RB_TYPE_P(other, T_RATIONAL)) {
+	return f_expt(f_to_f(self), other);
+    }
+    else {
 	return rb_num_coerce_bin(self, other, id_expt);
     }
 }
@@ -1113,9 +1111,7 @@ nurat_expt(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1111
 static VALUE
 nurat_cmp(VALUE self, VALUE other)
 {
-    switch (TYPE(other)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
+    if (RB_TYPE_P(other, T_FIXNUM) || RB_TYPE_P(other, T_BIGNUM)) {
 	{
 	    get_dat1(self);
 
@@ -1123,9 +1119,11 @@ nurat_cmp(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1119
 		return f_cmp(dat->num, other); /* c14n */
 	    return f_cmp(self, f_rational_new_bang1(CLASS_OF(self), other));
 	}
-      case T_FLOAT:
+    }
+    else if (RB_TYPE_P(other, T_FLOAT)) {
 	return f_cmp(f_to_f(self), other);
-      case T_RATIONAL:
+    }
+    else if (RB_TYPE_P(other, T_RATIONAL)) {
 	{
 	    VALUE num1, num2;
 
@@ -1142,7 +1140,8 @@ nurat_cmp(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1140
 	    }
 	    return f_cmp(f_sub(num1, num2), ZERO);
 	}
-      default:
+    }
+    else {
 	return rb_num_coerce_cmp(self, other, id_cmp);
     }
 }
@@ -1162,9 +1161,7 @@ nurat_cmp(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1161
 static VALUE
 nurat_eqeq_p(VALUE self, VALUE other)
 {
-    switch (TYPE(other)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
+    if (RB_TYPE_P(other, T_FIXNUM) || RB_TYPE_P(other, T_BIGNUM)) {
 	{
 	    get_dat1(self);
 
@@ -1179,9 +1176,11 @@ nurat_eqeq_p(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1176
 		return Qtrue;
 	    return Qfalse;
 	}
-      case T_FLOAT:
+    }
+    else if (RB_TYPE_P(other, T_FLOAT)) {
 	return f_eqeq_p(f_to_f(self), other);
-      case T_RATIONAL:
+    }
+    else if (RB_TYPE_P(other, T_RATIONAL)) {
 	{
 	    get_dat2(self, other);
 
@@ -1191,7 +1190,8 @@ nurat_eqeq_p(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1190
 	    return f_boolcast(f_eqeq_p(adat->num, bdat->num) &&
 			      f_eqeq_p(adat->den, bdat->den));
 	}
-      default:
+    }
+    else {
 	return f_eqeq_p(other, self);
     }
 }
@@ -1200,15 +1200,16 @@ nurat_eqeq_p(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L1200
 static VALUE
 nurat_coerce(VALUE self, VALUE other)
 {
-    switch (TYPE(other)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
+    if (RB_TYPE_P(other, T_FIXNUM) || RB_TYPE_P(other, T_BIGNUM)) {
 	return rb_assoc_new(f_rational_new_bang1(CLASS_OF(self), other), self);
-      case T_FLOAT:
+    }
+    else if (RB_TYPE_P(other, T_FLOAT)) {
 	return rb_assoc_new(other, f_to_f(self));
-      case T_RATIONAL:
+    }
+    else if (RB_TYPE_P(other, T_RATIONAL)) {
 	return rb_assoc_new(other, self);
-      case T_COMPLEX:
+    }
+    else if (RB_TYPE_P(other, T_COMPLEX)) {
 	if (k_exact_zero_p(RCOMPLEX(other)->imag))
 	    return rb_assoc_new(f_rational_new_bang1
 				(CLASS_OF(self), RCOMPLEX(other)->real), self);
@@ -2431,14 +2432,12 @@ nurat_s_convert(int argc, VALUE *argv, V https://github.com/ruby/ruby/blob/trunk/rational.c#L2432
     if (NIL_P(a1) || (argc == 2 && NIL_P(a2)))
 	rb_raise(rb_eTypeError, "can't convert nil into Rational");
 
-    switch (TYPE(a1)) {
-      case T_COMPLEX:
+    if (RB_TYPE_P(a1, T_COMPLEX)) {
 	if (k_exact_zero_p(RCOMPLEX(a1)->imag))
 	    a1 = RCOMPLEX(a1)->real;
     }
 
-    switch (TYPE(a2)) {
-      case T_COMPLEX:
+    if (RB_TYPE_P(a2, T_COMPLEX)) {
 	if (k_exact_zero_p(RCOMPLEX(a2)->imag))
 	    a2 = RCOMPLEX(a2)->real;
     }
@@ -2446,34 +2445,23 @@ nurat_s_convert(int argc, VALUE *argv, V https://github.com/ruby/ruby/blob/trunk/rational.c#L2445
     backref = rb_backref_get();
     rb_match_busy(backref);
 
-    switch (TYPE(a1)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
-	break;
-      case T_FLOAT:
+    if (RB_TYPE_P(a1, T_FLOAT)) {
 	a1 = f_to_r(a1);
-	break;
-      case T_STRING:
+    }
+    else if (RB_TYPE_P(a1, T_STRING)) {
 	a1 = string_to_r_strict(a1);
-	break;
     }
 
-    switch (TYPE(a2)) {
-      case T_FIXNUM:
-      case T_BIGNUM:
-	break;
-      case T_FLOAT:
+    if (RB_TYPE_P(a2, T_FLOAT)) {
 	a2 = f_to_r(a2);
-	break;
-      case T_STRING:
+    }
+    else if (RB_TYPE_P(a2, T_STRING)) {
 	a2 = string_to_r_strict(a2);
-	break;
     }
 
     rb_backref_set(backref);
 
-    switch (TYPE(a1)) {
-      case T_RATIONAL:
+    if (RB_TYPE_P(a1, T_RATIONAL)) {
 	if (argc == 1 || (k_exact_one_p(a2)))
 	    return a1;
     }

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]