www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 17442] New: regex purity issues

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

          Issue ID: 17442
           Summary: regex purity issues
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody puremagic.com
          Reporter: braddr puremagic.com

At least two of the functions in std.regex that ought to be usable in a pure
context aren't.  I suspect there's a broader issue with that subsystem, but
haven't investigated.

---------
module bugregex;

string unifyNewLine(string str) pure
{
    import std.regex;

    return std.regex.replace(str, regex(`\r\n|\r|\n`, "g"), "\n");
}
---------

$ dmd -c -ofbugregex.o bugregex.d
bugregex.d(7): Error: pure function 'bugregex.unifyNewLine' cannot call impure
function 'std.regex.regex!string.regex'
bugregex.d(7): Error: pure function 'bugregex.unifyNewLine' cannot call impure
function 'std.regex.replace!(match, string, char, Regex!char).replace'

--
May 27 2017