Thread overview
[Issue 6222] New: A problem with iota() using size_t
Apr 21, 2012
Brad Anderson
Apr 23, 2012
Brad Anderson
June 29, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6222

           Summary: A problem with iota() using size_t
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: nobody@puremagic.com
        ReportedBy: bearophile_hugs@eml.cc


--- Comment #0 from bearophile_hugs@eml.cc 2011-06-29 13:33:50 PDT ---
With DMD 2.053 this apparently goes in infinite loop:


import std.range;
void main() {
    string s;
    foreach (i; iota(0, s.length, 3)) {}
}


What I expect: the foreach loop to loop zero times instead.

See also bug 4603

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 21, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6222


Brad Anderson <eco@gnuk.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |eco@gnuk.net


--- Comment #1 from Brad Anderson <eco@gnuk.net> 2012-04-20 19:55:20 PDT ---
https://github.com/D-Programming-Language/phobos/pull/547

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 23, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6222



--- Comment #2 from github-bugzilla@puremagic.com 2012-04-22 17:54:03 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/6b92abb0449e6af80f68beb9fa1311346397bfaf fix Issue 6222 - A problem with iota() using size_t

If the common type of begin and end is unsigned and end is 0 the private member pastEnd ends up being unsigned.max due to "pastEnd - 1" (used to make end not inclusive) which results in iota behaving incorrectly. A simple change to always make an empty range when begin==end prevents this.

Also fixed and clarified the documentation.

https://github.com/D-Programming-Language/phobos/commit/b1252f35afc019c37f334d274c257a25a4e0035f Merge pull request #547 from eco/iota-unsigned-odd

fix Issue 6222 - A problem with iota() using size_t

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 23, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6222


Brad Anderson <eco@gnuk.net> changed:

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


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------