mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Introduce mrb_obj_itself()
Some method definitions were changed to use this function.
This commit is contained in:
@@ -798,6 +798,8 @@ MRB_API struct RClass * mrb_module_get_under_id(mrb_state *mrb, struct RClass *o
|
||||
MRB_API void mrb_notimplement(mrb_state*);
|
||||
/* a function to be replacement of unimplemented method */
|
||||
MRB_API mrb_value mrb_notimplement_m(mrb_state*, mrb_value);
|
||||
/* just return it self */
|
||||
MRB_API mrb_value mrb_obj_itself(mrb_state*, mrb_value);
|
||||
|
||||
/**
|
||||
* Duplicate an object.
|
||||
|
||||
@@ -149,12 +149,6 @@ mrb_complex_to_i(mrb_state *mrb, mrb_value self)
|
||||
return mrb_int_value(mrb, (mrb_int)p->real);
|
||||
}
|
||||
|
||||
static mrb_value
|
||||
complex_to_c(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
mrb_bool
|
||||
mrb_complex_eq(mrb_state *mrb, mrb_value x, mrb_value y)
|
||||
{
|
||||
@@ -406,7 +400,7 @@ void mrb_mruby_complex_gem_init(mrb_state *mrb)
|
||||
mrb_define_method(mrb, comp, "imaginary", complex_imaginary, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, comp, "to_f", mrb_complex_to_f, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, comp, "to_i", mrb_complex_to_i, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, comp, "to_c", complex_to_c, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, comp, "to_c", mrb_obj_itself, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, comp, "+", complex_add, MRB_ARGS_REQ(1));
|
||||
mrb_define_method(mrb, comp, "-", complex_sub, MRB_ARGS_REQ(1));
|
||||
mrb_define_method(mrb, comp, "*", complex_mul, MRB_ARGS_REQ(1));
|
||||
|
||||
@@ -60,6 +60,8 @@ nil_to_i(mrb_state *mrb, mrb_value obj)
|
||||
}
|
||||
|
||||
/*
|
||||
* Document-method: Kernel#itself
|
||||
*
|
||||
* call-seq:
|
||||
* obj.itself -> an_object
|
||||
*
|
||||
@@ -69,11 +71,6 @@ nil_to_i(mrb_state *mrb, mrb_value obj)
|
||||
* string.itself.object_id == string.object_id #=> true
|
||||
*
|
||||
*/
|
||||
static mrb_value
|
||||
f_itself(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
@@ -122,7 +119,7 @@ mrb_mruby_object_ext_gem_init(mrb_state* mrb)
|
||||
mrb_define_method(mrb, n, "to_h", nil_to_h, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, n, "to_i", nil_to_i, MRB_ARGS_NONE());
|
||||
|
||||
mrb_define_method(mrb, mrb->kernel_module, "itself", f_itself, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, mrb->kernel_module, "itself", mrb_obj_itself, MRB_ARGS_NONE());
|
||||
|
||||
mrb_define_method(mrb, mrb_class_get_id(mrb, MRB_SYM(BasicObject)), "instance_exec", obj_instance_exec, MRB_ARGS_ANY() | MRB_ARGS_BLOCK());
|
||||
}
|
||||
|
||||
@@ -329,12 +329,6 @@ mrb_rational_to_i(mrb_state *mrb, mrb_value self)
|
||||
return mrb_int_value(mrb, p->numerator / p->denominator);
|
||||
}
|
||||
|
||||
static mrb_value
|
||||
rational_to_r(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
static mrb_value
|
||||
rational_negative_p(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
@@ -778,7 +772,7 @@ void mrb_mruby_rational_gem_init(mrb_state *mrb)
|
||||
mrb_define_method(mrb, rat, "to_f", mrb_rational_to_f, MRB_ARGS_NONE());
|
||||
#endif
|
||||
mrb_define_method(mrb, rat, "to_i", mrb_rational_to_i, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, rat, "to_r", rational_to_r, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, rat, "to_r", mrb_obj_itself, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, rat, "negative?", rational_negative_p, MRB_ARGS_NONE());
|
||||
mrb_define_method(mrb, rat, "==", rational_eq, MRB_ARGS_REQ(1));
|
||||
mrb_define_method(mrb, rat, "<=>", rational_cmp, MRB_ARGS_REQ(1));
|
||||
|
||||
+9
-15
@@ -744,18 +744,14 @@ flo_lshift(mrb_state *mrb, mrb_value x)
|
||||
|
||||
/* 15.2.9.3.13 */
|
||||
/*
|
||||
* Document-method: Float#to_f
|
||||
*
|
||||
* call-seq:
|
||||
* flt.to_f -> self
|
||||
*
|
||||
* As <code>flt</code> is already a float, returns +self+.
|
||||
*/
|
||||
|
||||
static mrb_value
|
||||
flo_to_f(mrb_state *mrb, mrb_value num)
|
||||
{
|
||||
return num;
|
||||
}
|
||||
|
||||
/* 15.2.9.3.11 */
|
||||
/*
|
||||
* call-seq:
|
||||
@@ -1105,19 +1101,17 @@ flo_abs(mrb_state *mrb, mrb_value num)
|
||||
|
||||
/* 15.2.9.3.24 */
|
||||
/*
|
||||
* Document-method: Integer#to_i
|
||||
* Document-method: Integer#to_int
|
||||
*
|
||||
* call-seq:
|
||||
* int.to_i -> integer
|
||||
* int.to_int -> integer
|
||||
*
|
||||
* As <i>int</i> is already an <code>Integer</code>, all these
|
||||
* methods simply return the receiver.
|
||||
*/
|
||||
|
||||
static mrb_value
|
||||
int_to_i(mrb_state *mrb, mrb_value num)
|
||||
{
|
||||
return num;
|
||||
}
|
||||
|
||||
mrb_value
|
||||
mrb_int_mul(mrb_state *mrb, mrb_value x, mrb_value y)
|
||||
{
|
||||
@@ -2237,8 +2231,8 @@ mrb_init_numeric(mrb_state *mrb)
|
||||
mrb_define_method_id(mrb, integer, MRB_OPSYM(gt), num_gt, MRB_ARGS_REQ(1));
|
||||
mrb_define_method_id(mrb, integer, MRB_OPSYM(ge), num_ge, MRB_ARGS_REQ(1));
|
||||
|
||||
mrb_define_method_id(mrb, integer, MRB_SYM(to_i), int_to_i, MRB_ARGS_NONE()); /* 15.2.8.3.24 */
|
||||
mrb_define_method_id(mrb, integer, MRB_SYM(to_int), int_to_i, MRB_ARGS_NONE());
|
||||
mrb_define_method_id(mrb, integer, MRB_SYM(to_i), mrb_obj_itself, MRB_ARGS_NONE()); /* 15.2.8.3.24 */
|
||||
mrb_define_method_id(mrb, integer, MRB_SYM(to_int), mrb_obj_itself, MRB_ARGS_NONE());
|
||||
|
||||
mrb_define_method_id(mrb, integer, MRB_OPSYM(add), int_add, MRB_ARGS_REQ(1)); /* 15.2.8.3.1 */
|
||||
mrb_define_method_id(mrb, integer, MRB_OPSYM(sub), int_sub, MRB_ARGS_REQ(1)); /* 15.2.8.3.2 */
|
||||
@@ -2301,7 +2295,7 @@ mrb_init_numeric(mrb_state *mrb)
|
||||
mrb_define_method_id(mrb, fl, MRB_SYM(floor), flo_floor, MRB_ARGS_OPT(1)); /* 15.2.9.3.10 */
|
||||
mrb_define_method_id(mrb, fl, MRB_SYM_Q(infinite),flo_infinite_p, MRB_ARGS_NONE()); /* 15.2.9.3.11 */
|
||||
mrb_define_method_id(mrb, fl, MRB_SYM(round), flo_round, MRB_ARGS_OPT(1)); /* 15.2.9.3.12 */
|
||||
mrb_define_method_id(mrb, fl, MRB_SYM(to_f), flo_to_f, MRB_ARGS_NONE()); /* 15.2.9.3.13 */
|
||||
mrb_define_method_id(mrb, fl, MRB_SYM(to_f), mrb_obj_itself, MRB_ARGS_NONE()); /* 15.2.9.3.13 */
|
||||
mrb_define_method_id(mrb, fl, MRB_SYM(to_i), flo_to_i, MRB_ARGS_NONE()); /* 15.2.9.3.14 */
|
||||
mrb_define_method_id(mrb, fl, MRB_SYM(truncate), flo_truncate, MRB_ARGS_OPT(1)); /* 15.2.9.3.15 */
|
||||
mrb_define_method_id(mrb, fl, MRB_SYM(divmod), flo_divmod, MRB_ARGS_REQ(1));
|
||||
|
||||
@@ -649,3 +649,9 @@ mrb_eql(mrb_state *mrb, mrb_value obj1, mrb_value obj2)
|
||||
if (mrb_class(mrb, obj1) != mrb_class(mrb, obj2)) return FALSE;
|
||||
return mrb_test(mrb_funcall_argv(mrb, obj1, MRB_SYM_Q(eql), 1, &obj2));
|
||||
}
|
||||
|
||||
MRB_API mrb_value
|
||||
mrb_obj_itself(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
+3
-7
@@ -441,6 +441,8 @@ sym_name(mrb_state *mrb, mrb_value vsym)
|
||||
|
||||
/* 15.2.11.3.4 */
|
||||
/*
|
||||
* Document-method: Symbol#to_sym
|
||||
*
|
||||
* call-seq:
|
||||
* sym.to_sym -> sym
|
||||
* sym.intern -> sym
|
||||
@@ -450,12 +452,6 @@ sym_name(mrb_state *mrb, mrb_value vsym)
|
||||
* in this case.
|
||||
*/
|
||||
|
||||
static mrb_value
|
||||
sym_to_sym(mrb_state *mrb, mrb_value sym)
|
||||
{
|
||||
return sym;
|
||||
}
|
||||
|
||||
/* 15.2.11.3.5(x) */
|
||||
/*
|
||||
* call-seq:
|
||||
@@ -696,7 +692,7 @@ mrb_init_symbol(mrb_state *mrb)
|
||||
|
||||
mrb_define_method_id(mrb, sym, MRB_SYM(to_s), sym_to_s, MRB_ARGS_NONE()); /* 15.2.11.3.3 */
|
||||
mrb_define_method_id(mrb, sym, MRB_SYM(name), sym_name, MRB_ARGS_NONE());
|
||||
mrb_define_method_id(mrb, sym, MRB_SYM(to_sym), sym_to_sym, MRB_ARGS_NONE()); /* 15.2.11.3.4 */
|
||||
mrb_define_method_id(mrb, sym, MRB_SYM(to_sym), mrb_obj_itself, MRB_ARGS_NONE()); /* 15.2.11.3.4 */
|
||||
mrb_define_method_id(mrb, sym, MRB_SYM(inspect), sym_inspect, MRB_ARGS_NONE()); /* 15.2.11.3.5(x) */
|
||||
mrb_define_method_id(mrb, sym, MRB_OPSYM(cmp), sym_cmp, MRB_ARGS_REQ(1));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user