From b4817a54f07f576a34a079f2e8d96f8c13611a76 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sun, 17 Jan 2021 22:53:54 +0900 Subject: Make `mrb_to_flo()` to convert objects, not integer, not float; #5268 Thinking `Ratinal` and `Complex` in mind. --- src/numeric.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/numeric.c b/src/numeric.c index 117f447e5..146eb635b 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -39,8 +39,13 @@ mrb_to_flo(mrb_state *mrb, mrb_value val) return (mrb_float)mrb_integer(val); case MRB_TT_FLOAT: break; - default: + case MRB_TT_STRING: + case MRB_TT_FALSE: + case MRB_TT_TRUE: mrb_raise(mrb, E_TYPE_ERROR, "non float value"); + default: + val = mrb_type_convert(mrb, val, MRB_TT_FLOAT, MRB_SYM(to_f)); + break; } return mrb_float(val); } -- cgit v1.2.3