www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 13615] New: stable sort not usable in safe code

https://issues.dlang.org/show_bug.cgi?id=13615

          Issue ID: 13615
           Summary: stable sort not usable in  safe code
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Phobos
          Assignee: nobody puremagic.com
          Reporter: braddr puremagic.com

Adding safe to the stable sort unit tests, as follows:

 safe unittest
{
    // Showcase stable sorting
    string[] words = [ "aBc", "a", "abc", "b", "ABC", "c" ];
    sort!("toUpper(a) < toUpper(b)", SwapStrategy.stable)(words);
    assert(words == [ "a", "aBc", "abc", "ABC", "b", "c" ]);
}

std/algorithm.d(10241): Error: safe function
'std.algorithm.__unittestL10237_301' cannot call system function
'std.algorithm.sort!("toUpper(a) < toUpper(b)", cast(SwapStrategy)2,
string[]).sort'

I see no direct tests for either the quicksortimpl or timsortimpl, which is
itself a problem.  Creation of tests for both of those impls and having them
marked  safe should be a part of fixing this issue.

--
Oct 13 2014