www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 5506] New: StoppingPolicy.longest doesn't work well

reply d-bugmail puremagic.com writes:
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 puremagic.com
        ReportedBy: bearophile_hugs eml.cc



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: -------
Jan 30 2011
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=5506


Andrei Alexandrescu <andrei metalanguage.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |andrei metalanguage.com
         AssignedTo|nobody puremagic.com        |andrei metalanguage.com


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 30 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=5506


klickverbot <code klickverbot.at> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |code klickverbot.at



---
Oh, sorry, I didn't notice that you already assigned it to yourself, Andrei –
I
just submitted a patch via a GitHub pull request:

https://github.com/D-Programming-Language/phobos/pull/1

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 30 2011
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=5506


Andrei Alexandrescu <andrei metalanguage.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED



21:40:53 PST ---

 Oh, sorry, I didn't notice that you already assigned it to yourself, Andrei
– I
 just submitted a patch via a GitHub pull request:
 
 https://github.com/D-Programming-Language/phobos/pull/1
The pull request is a great way. I just followed it. Thanks very much! -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 30 2011