Skip to content

Commit

Permalink
Simplify the ".skip should get a new iterator" issue
Browse files Browse the repository at this point in the history
A much better fix than 854c10c was.
  • Loading branch information
lizmat committed Jan 7, 2018
1 parent b400707 commit dbea11c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 13 deletions.
14 changes: 10 additions & 4 deletions src/core/Any-iterable-methods.pm
Expand Up @@ -1868,6 +1868,16 @@ Did you mean to add a stub (\{...\}) or did you mean to .classify?"
)
}

proto method skip(|) {*}
multi method skip() {
my $iter := self.iterator;
Seq.new( $iter.skip-one ?? $iter !! Rakudo::Iterator.Empty )
}
multi method skip(Int() $n) {
my $iter := self.iterator;
Seq.new( $iter.skip-at-least($n) ?? $iter !! Rakudo::Iterator.Empty )
}

proto method minpairs(|) {*}
multi method minpairs(Any:D:) {
my @found;
Expand Down Expand Up @@ -1919,10 +1929,6 @@ Did you mean to add a stub (\{...\}) or did you mean to .classify?"
multi method rotor(Any:D: *@cycle, :$partial) {
Seq.new(Rakudo::Iterator.Rotor(self.iterator,@cycle,$partial))
}

proto method skip(|) {*}
multi method skip() { Seq.new(self.iterator).skip }
multi method skip(Int() $n) { Seq.new(self.iterator).skip($n) }
}

BEGIN Attribute.^compose;
Expand Down
9 changes: 0 additions & 9 deletions src/core/Seq.pm
Expand Up @@ -162,15 +162,6 @@ my class Seq is Cool does Iterable does Sequence {
multi method from-loop(&body, &cond, &afterwards) {
Seq.new(Rakudo::Iterator.CStyleLoop(&body, &cond, &afterwards))
}

multi method skip() {
my $iter := self.iterator;
Seq.new( $iter.skip-one ?? $iter !! Rakudo::Iterator.Empty )
}
multi method skip(Int() $n) {
my $iter := self.iterator;
Seq.new( $iter.skip-at-least($n) ?? $iter !! Rakudo::Iterator.Empty )
}
}

sub GATHER(&block) {
Expand Down

0 comments on commit dbea11c

Please sign in to comment.