summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-01-03 23:57:20 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-01-03 23:57:20 +0900
commit6d7b3a7bc9e85d07a9df156593b291c0122f58a4 (patch)
tree7e0f8b8bad69458664604fa03e829e7523ce3b8e
parentdc27c2be462771b0c28d90759851aaba26659991 (diff)
downloadmruby-6d7b3a7bc9e85d07a9df156593b291c0122f58a4.tar.gz
mruby-6d7b3a7bc9e85d07a9df156593b291c0122f58a4.zip
mrb_ary_splat() to call #to_a
-rw-r--r--src/array.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/array.c b/src/array.c
index ec2465be1..69ff00dee 100644
--- a/src/array.c
+++ b/src/array.c
@@ -849,6 +849,9 @@ mrb_ary_splat(mrb_state *mrb, mrb_value v)
if (mrb_array_p(v)) {
return v;
}
+ if (mrb_respond_to(mrb, v, mrb_intern_lit(mrb, "to_a"))) {
+ return mrb_funcall(mrb, v, "to_a", 0);
+ }
else {
return mrb_ary_new_from_values(mrb, 1, &v);
}