libphobos: Merge upstream phobos 7948e0967.
authorIain Buclaw <ibuclaw@gdcproject.org>
Fri, 13 Nov 2020 15:56:29 +0000 (16:56 +0100)
committerIain Buclaw <ibuclaw@gdcproject.org>
Wed, 18 Nov 2020 09:21:26 +0000 (10:21 +0100)
Removes deprecated functions from std.string module.

Reviewed-on: https://github.com/dlang/phobos/pull/7694

libphobos/ChangeLog:

* src/MERGE: Merge upstream phobos 7948e0967.

libphobos/src/MERGE
libphobos/src/std/string.d

index 1562f747b74100f0ae3e02592288f55a0df68189..de86ff5b65b5b792a97f7ecb175aebd2992826c6 100644 (file)
@@ -1,4 +1,4 @@
-021ae0df76727a32809a29887095ab7093489ea3
+7948e096735adbc093333da789fc28feadce24b0
 
 The first line of this file holds the git revision number of the last
 merge done from the dlang/phobos repository.
index 5b61cde4ac1169f3a6dfc0daef2fed0fbe7d1528..1128a0903046b01b62e6cfd77a089ba65db17b65 100644 (file)
@@ -5174,273 +5174,6 @@ body
     assert(buffer.data == "h5 rd");
 }
 
-//@@@DEPRECATED_2.086@@@
-deprecated("This function is obsolete. It is available in https://github.com/dlang/undeaD if necessary.")
-bool inPattern(S)(dchar c, in S pattern) @safe pure @nogc
-if (isSomeString!S)
-{
-    bool result = false;
-    int range = 0;
-    dchar lastc;
-
-    foreach (size_t i, dchar p; pattern)
-    {
-        if (p == '^' && i == 0)
-        {
-            result = true;
-            if (i + 1 == pattern.length)
-                return (c == p);    // or should this be an error?
-        }
-        else if (range)
-        {
-            range = 0;
-            if (lastc <= c && c <= p || c == p)
-                return !result;
-        }
-        else if (p == '-' && i > result && i + 1 < pattern.length)
-        {
-            range = 1;
-            continue;
-        }
-        else if (c == p)
-            return !result;
-        lastc = p;
-    }
-    return result;
-}
-
-
-deprecated
-@safe pure @nogc unittest
-{
-    import std.conv : to;
-    import std.exception : assertCTFEable;
-
-    assertCTFEable!(
-    {
-    assert(inPattern('x', "x") == 1);
-    assert(inPattern('x', "y") == 0);
-    assert(inPattern('x', string.init) == 0);
-    assert(inPattern('x', "^y") == 1);
-    assert(inPattern('x', "yxxy") == 1);
-    assert(inPattern('x', "^yxxy") == 0);
-    assert(inPattern('x', "^abcd") == 1);
-    assert(inPattern('^', "^^") == 0);
-    assert(inPattern('^', "^") == 1);
-    assert(inPattern('^', "a^") == 1);
-    assert(inPattern('x', "a-z") == 1);
-    assert(inPattern('x', "A-Z") == 0);
-    assert(inPattern('x', "^a-z") == 0);
-    assert(inPattern('x', "^A-Z") == 1);
-    assert(inPattern('-', "a-") == 1);
-    assert(inPattern('-', "^A-") == 0);
-    assert(inPattern('a', "z-a") == 1);
-    assert(inPattern('z', "z-a") == 1);
-    assert(inPattern('x', "z-a") == 0);
-    });
-}
-
-//@@@DEPRECATED_2.086@@@
-deprecated("This function is obsolete. It is available in https://github.com/dlang/undeaD if necessary.")
-bool inPattern(S)(dchar c, S[] patterns) @safe pure @nogc
-if (isSomeString!S)
-{
-    foreach (string pattern; patterns)
-    {
-        if (!inPattern(c, pattern))
-        {
-            return false;
-        }
-    }
-    return true;
-}
-
-//@@@DEPRECATED_2.086@@@
-deprecated("This function is obsolete. It is available in https://github.com/dlang/undeaD if necessary.")
-size_t countchars(S, S1)(S s, in S1 pattern) @safe pure @nogc
-if (isSomeString!S && isSomeString!S1)
-{
-    size_t count;
-    foreach (dchar c; s)
-    {
-        count += inPattern(c, pattern);
-    }
-    return count;
-}
-
-deprecated
-@safe pure @nogc unittest
-{
-    import std.conv : to;
-    import std.exception : assertCTFEable;
-
-    assertCTFEable!(
-    {
-    assert(countchars("abc", "a-c") == 3);
-    assert(countchars("hello world", "or") == 3);
-    });
-}
-
-//@@@DEPRECATED_2.086@@@
-deprecated("This function is obsolete. It is available in https://github.com/dlang/undeaD if necessary.")
-S removechars(S)(S s, in S pattern) @safe pure
-if (isSomeString!S)
-{
-    import std.utf : encode;
-
-    Unqual!(typeof(s[0]))[] r;
-    bool changed = false;
-
-    foreach (size_t i, dchar c; s)
-    {
-        if (inPattern(c, pattern))
-        {
-            if (!changed)
-            {
-                changed = true;
-                r = s[0 .. i].dup;
-            }
-            continue;
-        }
-        if (changed)
-        {
-            encode(r, c);
-        }
-    }
-    if (changed)
-        return r;
-    else
-        return s;
-}
-
-deprecated
-@safe pure unittest
-{
-    import std.conv : to;
-    import std.exception : assertCTFEable;
-
-    assertCTFEable!(
-    {
-    assert(removechars("abc", "a-c").length == 0);
-    assert(removechars("hello world", "or") == "hell wld");
-    assert(removechars("hello world", "d") == "hello worl");
-    assert(removechars("hah", "h") == "a");
-    });
-}
-
-deprecated
-@safe pure unittest
-{
-    assert(removechars("abc", "x") == "abc");
-}
-
-//@@@DEPRECATED_2.086@@@
-deprecated("This function is obsolete. It is available in https://github.com/dlang/undeaD if necessary.")
-S squeeze(S)(S s, in S pattern = null)
-{
-    import std.utf : encode, stride;
-
-    Unqual!(typeof(s[0]))[] r;
-    dchar lastc;
-    size_t lasti;
-    int run;
-    bool changed;
-
-    foreach (size_t i, dchar c; s)
-    {
-        if (run && lastc == c)
-        {
-            changed = true;
-        }
-        else if (pattern is null || inPattern(c, pattern))
-        {
-            run = 1;
-            if (changed)
-            {
-                if (r is null)
-                    r = s[0 .. lasti].dup;
-                encode(r, c);
-            }
-            else
-                lasti = i + stride(s, i);
-            lastc = c;
-        }
-        else
-        {
-            run = 0;
-            if (changed)
-            {
-                if (r is null)
-                    r = s[0 .. lasti].dup;
-                encode(r, c);
-            }
-        }
-    }
-    return changed ? ((r is null) ? s[0 .. lasti] : cast(S) r) : s;
-}
-
-deprecated
-@system pure unittest
-{
-    import std.conv : to;
-    import std.exception : assertCTFEable;
-
-    assertCTFEable!(
-    {
-    string s;
-
-    assert(squeeze("hello") == "helo");
-
-    s = "abcd";
-    assert(squeeze(s) is s);
-    s = "xyzz";
-    assert(squeeze(s).ptr == s.ptr); // should just be a slice
-
-    assert(squeeze("hello goodbyee", "oe") == "hello godbye");
-    });
-}
-
-//@@@DEPRECATED_2.086@@@
-deprecated("This function is obsolete. It is available in https://github.com/dlang/undeaD if necessary.")
-S1 munch(S1, S2)(ref S1 s, S2 pattern) @safe pure @nogc
-{
-    size_t j = s.length;
-    foreach (i, dchar c; s)
-    {
-        if (!inPattern(c, pattern))
-        {
-            j = i;
-            break;
-        }
-    }
-    scope(exit) s = s[j .. $];
-    return s[0 .. j];
-}
-
-///
-deprecated
-@safe pure @nogc unittest
-{
-    string s = "123abc";
-    string t = munch(s, "0123456789");
-    assert(t == "123" && s == "abc");
-    t = munch(s, "0123456789");
-    assert(t == "" && s == "abc");
-}
-
-deprecated
-@safe pure @nogc unittest
-{
-    string s = "123€abc";
-    string t = munch(s, "0123456789");
-    assert(t == "123" && s == "€abc");
-    t = munch(s, "0123456789");
-    assert(t == "" && s == "€abc");
-    t = munch(s, "£$€¥");
-    assert(t == "€" && s == "abc");
-}
-
-
 /**********************************************
  * Return string that is the 'successor' to s[].
  * If the rightmost character is a-zA-Z0-9, it is incremented within