From 78017417905e2ba81dbf2a70e4ef3590707fab11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?fn=20=E2=8C=83=20=E2=8C=A5?= <70830482+FnControlOption@users.noreply.github.com> Date: Mon, 24 Oct 2022 09:30:41 -0700 Subject: [PATCH] complex.c: implement `nil.to_c` --- mrbgems/mruby-complex/src/complex.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mrbgems/mruby-complex/src/complex.c b/mrbgems/mruby-complex/src/complex.c index 63b28af3f..ad88a67ec 100644 --- a/mrbgems/mruby-complex/src/complex.c +++ b/mrbgems/mruby-complex/src/complex.c @@ -381,6 +381,12 @@ complex_hash(mrb_state *mrb, mrb_value cpx) return mrb_int_value(mrb, hash); } +static mrb_value +nil_to_c(mrb_state *mrb, mrb_value self) +{ + return complex_new(mrb, 0, 0); +} + void mrb_mruby_complex_gem_init(mrb_state *mrb) { struct RClass *comp; @@ -404,6 +410,7 @@ void mrb_mruby_complex_gem_init(mrb_state *mrb) mrb_define_method(mrb, comp, "quo", complex_div, MRB_ARGS_REQ(1)); mrb_define_method(mrb, comp, "==", complex_eq, MRB_ARGS_REQ(1)); mrb_define_method(mrb, comp, "hash", complex_hash, MRB_ARGS_NONE()); + mrb_define_method(mrb, mrb->nil_class, "to_c", nil_to_c, MRB_ARGS_NONE()); } void