mirror of
https://github.com/dlang/phobos.git
synced 2025-04-28 14:10: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]);
|
||||
|
||||
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
|
||||
{
|
||||
|
@ -2362,6 +2369,13 @@ if (isInputRange!Range &&
|
|||
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`
|
||||
(inclusive) to `to` (exclusive) with the range `stuff`. Expands or
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue