Skip to content

Commit

Permalink
Remove duplicate functions
Browse files Browse the repository at this point in the history
  • Loading branch information
nobu committed Jun 21, 2019
1 parent 432b28a commit 16729f6
Showing 1 changed file with 2 additions and 33 deletions.
35 changes: 2 additions & 33 deletions enumerator.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand All @@ -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
Expand Down

0 comments on commit 16729f6

Please sign in to comment.