[Issue 5506] New: StoppingPolicy.longest doesn't work well
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Jan 30 05:01:33 PST 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5506
Summary: StoppingPolicy.longest doesn't work well
Product: D
Version: D2
Platform: x86
OS/Version: Windows
Status: NEW
Keywords: wrong-code
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: bearophile_hugs at eml.cc
--- Comment #0 from bearophile_hugs at eml.cc 2011-01-30 04:59:21 PST ---
The purpose of std.range.StoppingPolicy.longest is to change the behaviour of
zip to "Stop when the longest range is exhausted". But this code with DMD 2.051
shows it doesn't stop looping (problem found by tsukikage):
import std.c.stdio:printf;
import std.range: zip, StoppingPolicy;
void main() {
int[] array = [1, 2];
auto count = 0;
foreach (p; zip(StoppingPolicy.longest, array))
if (count++ < 30)
printf("%d\n", p[0]);
else
break;
}
Output:
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
------------------------------
Additionally a small enhancement request. Instead of writing:
zip(StoppingPolicy.longest, array)
I think this is enough, and shorter, but a bit less clear, so I am not sure if
this OK:
zip(Zip.longest, array)
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list