From ae0cbc3020fc243cd5b53e622ad31edc19184936 Mon Sep 17 00:00:00 2001 From: Elizabeth Mattijsen Date: Tue, 20 Mar 2018 10:42:15 +0100 Subject: [PATCH] Fix issue with HyperToIterator.skip-at-least The $!current-items may already have items that we need to skip. So get any new items *after* we have skipped any from the current items. --- src/core/Rakudo/Internals/HyperToIterator.pm6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/Rakudo/Internals/HyperToIterator.pm6 b/src/core/Rakudo/Internals/HyperToIterator.pm6 index 34fd19edeae..39bee678e46 100644 --- a/src/core/Rakudo/Internals/HyperToIterator.pm6 +++ b/src/core/Rakudo/Internals/HyperToIterator.pm6 @@ -72,13 +72,13 @@ my class Rakudo::Internals::HyperToIterator does Rakudo::Internals::HyperJoiner method skip-at-least(int $skipping) { my int $toskip = $skipping; while $toskip { - $!current-items := $!batches.receive.items; - self.batch-used(); if nqp::isge_i(nqp::elems($!current-items),$toskip) { nqp::splice($!current-items,EMPTY_BUFFER,0,$toskip); return 1; } $toskip = nqp::sub_i($toskip,nqp::elems($!current-items)); + $!current-items := $!batches.receive.items; + self.batch-used(); CATCH { when X::Channel::ReceiveOnClosed {