[Issue 6793] New: std.exception.assumeUnique documentation

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Oct 8 13:32:42 PDT 2011


http://d.puremagic.com/issues/show_bug.cgi?id=6793

           Summary: std.exception.assumeUnique documentation
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: websites
        AssignedTo: nobody at puremagic.com
        ReportedBy: bearophile_hugs at eml.cc


--- Comment #0 from bearophile_hugs at eml.cc 2011-10-08 13:31:55 PDT ---
In the site documentation of std.exception.assumeUnique there is code like:

 string letters()
 {
   char[] result = new char['z' - 'a' + 1];
   foreach (i, ref e; result)
   {
     e = 'a' + i;
   }
   return assumeUnique(result);
 }


But recent improvements of the D language make assumeUnique useless in this
case, this compiles:

string lowercase() pure nothrow {
    auto result = new char['z' - 'a' + 1];
    foreach (i, ref c; result)
        c = cast(char)('a' + i);
    return result;
}
void main() {}


On the other hand currently (DMD 2.056head) 'a'+i can't be assigned to a char
because the compiler doesn't see that the variable 'i' will never become too
much big.

So in the documentation of std.exception.assumeUnique I suggest to explain that
some usages (where the function is pure) of assumeUnique are not needed now.

-- 
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