std.algorithm: set accidentally exposed methods to private

This commit is contained in:
Sebastian Wilzbach 2016-05-12 18:08:29 +03:00
parent f276dbc06b
commit 0c100a7b5a
4 changed files with 50 additions and 23 deletions

View file

@ -70,7 +70,7 @@ import std.functional; // : unaryFun, binaryFun;
import std.range.primitives;
import std.traits;
template aggregate(fun...) if (fun.length >= 1)
private template aggregate(fun...) if (fun.length >= 1)
{
/* --Intentionally not ddoc--
* Aggregates elements in each subrange of the given range of ranges using
@ -4899,8 +4899,33 @@ Permutations!Range permutations(Range)(Range r)
struct Permutations(Range)
if (isRandomAccessRange!Range && hasLength!Range)
{
size_t[] indices, state;
Range r;
private size_t[] _indices, _state;
private Range _r;
private bool _empty;
// Explicitly undocumented. It will be removed in June 2017. @@@DEPRECATED_2017-06@@@
deprecated("Private variable. Use front()")
@property size_t[] indices() pure nothrow @nogc @safe { return _indices; }
// Explicitly undocumented. It will be removed in June 2017. @@@DEPRECATED_2017-06@@@
deprecated("Private variable. Don't set it manually")
@property void indices(size_t[] indices) pure nothrow @nogc @safe { _indices = indices; }
// Explicitly undocumented. It will be removed in June 2017. @@@DEPRECATED_2017-06@@@
deprecated("Private variable. Use front()")
@property size_t[] state() pure nothrow @nogc @safe { return _state; }
// Explicitly undocumented. It will be removed in June 2017. @@@DEPRECATED_2017-06@@@
deprecated("Private variable. Don't set it manually")
@property void state(size_t[] state) pure nothrow @nogc @safe { state = state; }
// Explicitly undocumented. It will be removed in June 2017. @@@DEPRECATED_2017-06@@@
deprecated("Private variable. Access will be forbidden.")
@property Range r() pure nothrow @nogc @safe { return _r; }
// Explicitly undocumented. It will be removed in June 2017. @@@DEPRECATED_2017-06@@@
deprecated("Private variable. Don't set it manually")
@property void r(Range r) pure nothrow @nogc @safe { _r = r; }
///
this(Range r)
@ -4908,20 +4933,23 @@ struct Permutations(Range)
import std.range : iota;
import std.array : array;
this.r = r;
state = r.length ? new size_t[r.length-1] : null;
indices = iota(size_t(r.length)).array;
empty = r.length == 0;
this._r = r;
_state = r.length ? new size_t[r.length-1] : null;
_indices = iota(size_t(r.length)).array;
_empty = r.length == 0;
}
///
bool empty;
@property bool empty() const pure nothrow @safe @nogc
{
return _empty;
}
///
@property auto front()
{
import std.range : indexed;
return r.indexed(indices);
return _r.indexed(_indices);
}
///
@ -4931,20 +4959,20 @@ struct Permutations(Range)
{
import std.algorithm.mutation : swap;
if (n > indices.length)
if (n > _indices.length)
{
empty = true;
_empty = true;
return;
}
if (n % 2 == 1)
swap(indices[0], indices[n-1]);
swap(_indices[0], _indices[n-1]);
else
swap(indices[state[n-2]], indices[n-1]);
swap(_indices[_state[n-2]], _indices[n-1]);
if (++state[n-2] == n)
if (++_state[n-2] == n)
{
state[n-2] = 0;
_state[n-2] = 0;
next(n+1);
}
}

View file

@ -2500,7 +2500,7 @@ pure @safe nothrow unittest
assert(f.payload.equal([10, 12, 11]));
}
void swapFront(R1, R2)(R1 r1, R2 r2)
private void swapFront(R1, R2)(R1 r1, R2 r2)
if (isInputRange!R1 && isInputRange!R2)
{
static if (is(typeof(swap(r1.front, r2.front))))

View file

@ -1922,9 +1922,8 @@ if (isRandomAccessRange!R1 && isForwardRange!R2 && !isBidirectionalRange!R2 &&
assert(find(haystack, filter!"true"(needle)).empty);
}
// Internally used by some find() overloads above. Can't make it
// private due to bugs in the compiler.
/*private*/ R1 simpleMindedFind(alias pred, R1, R2)(R1 haystack, R2 needle)
// Internally used by some find() overloads above
private R1 simpleMindedFind(alias pred, R1, R2)(R1 haystack, R2 needle)
{
enum estimateNeedleLength = hasLength!R1 && !hasLength!R2;
@ -3856,7 +3855,7 @@ bool startsWith(alias pred, R)(R doesThisStart)
Consume all elements from $(D r) that are equal to one of the elements
$(D es).
*/
void skipAll(alias pred = "a == b", R, Es...)(ref R r, Es es)
private void skipAll(alias pred = "a == b", R, Es...)(ref R r, Es es)
//if (is(typeof(binaryFun!pred(r1.front, es[0]))))
{
loop:
@ -3938,8 +3937,8 @@ struct Until(alias pred, Range, Sentinel) if (isInputRange!Range)
// uint, "", 6));
// OpenRight, "_openRight", 1,
// bool, "_done", 1,
OpenRight _openRight;
bool _done;
private OpenRight _openRight;
private bool _done;
static if (!is(Sentinel == void))
///

View file

@ -794,7 +794,7 @@ struct NWayUnion(alias less, RangeOfRanges)
// revert comparison order so we get the smallest elements first
return comp(b.front, a.front);
}
BinaryHeap!(RangeOfRanges, compFront) _heap;
private BinaryHeap!(RangeOfRanges, compFront) _heap;
///
this(RangeOfRanges ror)