From 16729f64306941a2662c8361d452e86998fc1239 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Fri, 21 Jun 2019 17:53:32 +0900 Subject: [PATCH] Remove duplicate functions --- enumerator.c | 35 ++--------------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/enumerator.c b/enumerator.c index 185e5d55fa46a5..8cb280b2a86f7f 100644 --- a/enumerator.c +++ b/enumerator.c @@ -2026,39 +2026,6 @@ lazy_select(VALUE obj) return lazy_add_method(obj, 0, 0, Qnil, Qnil, &lazy_select_funcs); } -static VALUE -lazy_filter_map_proc(RB_BLOCK_CALL_FUNC_ARGLIST(val, m)) -{ - VALUE result = rb_yield_values2(argc - 1, &argv[1]); - if (RTEST(result)) { - rb_funcall(argv[0], idLTLT, 1, result); - } - return Qnil; -} - -/* - * call-seq: - * lazy.filter_map { |obj| block } -> lazy_enumerator - * - * Returns an enumerator which will return a new array containing the - * truthy results (everything except +false+ or +nil+) of running the - * +block+ for every element in +lazy+. - * - * (1..).lazy.filter_map { |i| i * 2 if i.even? }.first(5) #=> [4, 8, 12, 16, 20] - * - */ -static VALUE -lazy_filter_map(VALUE obj) -{ - if (!rb_block_given_p()) { - rb_raise(rb_eArgError, "tried to call lazy filter_map without a block"); - } - - return lazy_set_method(rb_block_call(rb_cLazy, id_new, 1, &obj, - lazy_filter_map_proc, 0), - Qnil, 0); -} - static struct MEMO * lazy_filter_map_proc(VALUE proc_entry, struct MEMO *result, VALUE memos, long memo_index) { @@ -2078,6 +2045,8 @@ static const lazyenum_funcs lazy_filter_map_funcs = { * lazy.filter_map { |obj| block } -> lazy_enumerator * * Like Enumerable#filter_map, but chains operation to be lazy-evaluated. + * + * (1..).lazy.filter_map { |i| i * 2 if i.even? }.first(5) #=> [4, 8, 12, 16, 20] */ static VALUE