mirror of
https://github.com/dlang/phobos.git
synced 2025-04-29 14:40:30 +03:00
Fix Issue 18166 - std.array.replace should be usable in @safe for dstrings
This commit is contained in:
parent
9194efbf4d
commit
13cf12dfda
1 changed files with 15 additions and 1 deletions
16
std/array.d
16
std/array.d
|
@ -2268,7 +2268,14 @@ if (isInputRange!Range &&
|
||||||
copy(stuff, retval[from .. from + stuff.length]);
|
copy(stuff, retval[from .. from + stuff.length]);
|
||||||
|
|
||||||
retval[from + stuff.length .. $] = subject[to .. $];
|
retval[from + stuff.length .. $] = subject[to .. $];
|
||||||
return cast(T[]) retval;
|
static if (is(T == const) || is(T == immutable))
|
||||||
|
{
|
||||||
|
return () @trusted { return cast(T[]) retval; } ();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return cast(T[]) retval;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2362,6 +2369,13 @@ if (isInputRange!Range &&
|
||||||
assert(replace(d, 5, 10, "⁴³²¹⁰"d) == "⁰¹²³⁴⁴³²¹⁰"d);
|
assert(replace(d, 5, 10, "⁴³²¹⁰"d) == "⁰¹²³⁴⁴³²¹⁰"d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issue 18166
|
||||||
|
@safe pure unittest
|
||||||
|
{
|
||||||
|
auto str = replace("aaaaa"d, 1, 4, "***"d);
|
||||||
|
assert(str == "a***a");
|
||||||
|
}
|
||||||
|
|
||||||
/++
|
/++
|
||||||
Replaces elements from `array` with indices ranging from `from`
|
Replaces elements from `array` with indices ranging from `from`
|
||||||
(inclusive) to `to` (exclusive) with the range `stuff`. Expands or
|
(inclusive) to `to` (exclusive) with the range `stuff`. Expands or
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue