Remove comments from range traits claiming that they don't require ranges.

I don't know why these were added or how they got past the reviewers,
but it makes no sense for traits which check ranges for various
attributes to say that they don't require a range - especially when they
specifically check stuff like front! The only two where such a comment
makes sense (hasLength and ElementType) already had such comments,
making the comments added to them redundant, whereas the others were
just plain wrong. This commit removes all of those incorrect comments.
This commit is contained in:
jmdavis 2012-11-30 20:45:18 -08:00
parent 3d06ee0458
commit be3e9d1bb3

View file

@ -567,8 +567,6 @@ $(TR $(TD $(D r([ e ]);)) $(TD $(D R) is e.g. a $(D delegate)
accepting an $(D E[]). accepting an $(D E[]).
)) ))
) )
Note that $(D R) does not have to be a range.
*/ */
void put(R, E)(ref R r, E e) void put(R, E)(ref R r, E e)
{ {
@ -951,8 +949,6 @@ as well as $(D moveBack) and $(D moveAt) if it's a bidirectional or
random access range. These may be explicitly implemented, or may work random access range. These may be explicitly implemented, or may work
via the default behavior of the module level functions $(D moveFront) via the default behavior of the module level functions $(D moveFront)
and friends. and friends.
Note that $(D R) does not have to be a range.
*/ */
template hasMobileElements(R) template hasMobileElements(R)
{ {
@ -997,8 +993,6 @@ object $(D r) of type $(D R). For example, $(D ElementType!(T[])) is
$(D T) if $(D T[]) isn't a narrow string; if it is, the element type is $(D T) if $(D T[]) isn't a narrow string; if it is, the element type is
$(D dchar). If $(D R) doesn't have $(D front), $(D ElementType!R) is $(D dchar). If $(D R) doesn't have $(D front), $(D ElementType!R) is
$(D void). $(D void).
Note that $(D R) does not have to be a range.
*/ */
template ElementType(R) template ElementType(R)
{ {
@ -1028,8 +1022,6 @@ $(D wchar[]) and their qualified variants including $(D string) and
$(D wstring)), $(D ElementEncodingType) is the character type of the $(D wstring)), $(D ElementEncodingType) is the character type of the
string. For all other types, $(D ElementEncodingType) is the same as string. For all other types, $(D ElementEncodingType) is the same as
$(D ElementType). $(D ElementType).
Note that $(D R) does not have to be a range.
*/ */
template ElementEncodingType(R) template ElementEncodingType(R)
{ {
@ -1122,8 +1114,6 @@ unittest
/** /**
Tests whether $(D R) has lvalue elements. These are defined as elements that Tests whether $(D R) has lvalue elements. These are defined as elements that
can be passed by reference and have their address taken. can be passed by reference and have their address taken.
Note that $(D R) does not have to be a range.
*/ */
template hasLvalueElements(R) template hasLvalueElements(R)
{ {
@ -1166,8 +1156,6 @@ hasLength) yields $(D false) for them. This is because a narrow
string's length does not reflect the number of characters, but instead string's length does not reflect the number of characters, but instead
the number of encoding units, and as such is not useful with the number of encoding units, and as such is not useful with
range-oriented algorithms. range-oriented algorithms.
Note that $(D R) does not have to be a range.
*/ */
template hasLength(R) template hasLength(R)
{ {
@ -1232,8 +1220,6 @@ R r;
auto s = r[1 .. 2]; auto s = r[1 .. 2];
static assert(isInputRange!(typeof(s))); static assert(isInputRange!(typeof(s)));
---- ----
Note that $(D R) does not have to be a range.
*/ */
template hasSlicing(R) template hasSlicing(R)
{ {
@ -2805,9 +2791,6 @@ Otherwise if $(D R) is an input range, the type of the result
is an input range with length. Finally, if $(D R) is a forward range is an input range with length. Finally, if $(D R) is a forward range
(including bidirectional), the type of the result is a forward range (including bidirectional), the type of the result is a forward range
with length. with length.
Note that $(D R) does not have to be a range in case it has slicing and
its slice has length.
*/ */
auto takeExactly(R)(R range, size_t n) auto takeExactly(R)(R range, size_t n)
if (isInputRange!R && !hasSlicing!R) if (isInputRange!R && !hasSlicing!R)
@ -3596,7 +3579,7 @@ infinite (fact that would make $(D Cycle) the identity application),
$(D Cycle) detects that and aliases itself to the range type $(D Cycle) detects that and aliases itself to the range type
itself. If the original range has random access, $(D Cycle) offers itself. If the original range has random access, $(D Cycle) offers
random access and also offers a constructor taking an initial position random access and also offers a constructor taking an initial position
$(D index). $(D Cycle) is specialized for statically-sized arrays, $(D index). $(D Cycle) works with static arrays in addition to ranges,
mostly for performance reasons. mostly for performance reasons.
Example: Example:
@ -3605,9 +3588,6 @@ assert(equal(take(cycle([1, 2][]), 5), [ 1, 2, 1, 2, 1 ][]));
---- ----
Tip: This is a great way to implement simple circular buffers. Tip: This is a great way to implement simple circular buffers.
Note that $(D Range) does not have to be a range as $(D Cycle) also
accepts static arrays which aren't ranges (see $(LREF isInputRange)).
*/ */
struct Cycle(Range) struct Cycle(Range)
if (isForwardRange!(Unqual!Range) && !isInfinite!(Unqual!Range)) if (isForwardRange!(Unqual!Range) && !isInfinite!(Unqual!Range))
@ -6362,8 +6342,6 @@ unittest
Moves the front of $(D r) out and returns it. Leaves $(D r.front) in a Moves the front of $(D r) out and returns it. Leaves $(D r.front) in a
destroyable state that does not allocate any resources (usually equal destroyable state that does not allocate any resources (usually equal
to its $(D .init) value). to its $(D .init) value).
Note that $(D R) does not have to be a range.
*/ */
ElementType!R moveFront(R)(R r) ElementType!R moveFront(R)(R r)
{ {
@ -6394,8 +6372,6 @@ unittest
Moves the back of $(D r) out and returns it. Leaves $(D r.back) in a Moves the back of $(D r) out and returns it. Leaves $(D r.back) in a
destroyable state that does not allocate any resources (usually equal destroyable state that does not allocate any resources (usually equal
to its $(D .init) value). to its $(D .init) value).
Note that $(D R) does not have to be a range.
*/ */
ElementType!R moveBack(R)(R r) ElementType!R moveBack(R)(R r)
{ {
@ -6432,8 +6408,6 @@ unittest
Moves element at index $(D i) of $(D r) out and returns it. Leaves $(D Moves element at index $(D i) of $(D r) out and returns it. Leaves $(D
r.front) in a destroyable state that does not allocate any resources r.front) in a destroyable state that does not allocate any resources
(usually equal to its $(D .init) value). (usually equal to its $(D .init) value).
Note that $(D R) does not have to be a range.
*/ */
ElementType!R moveAt(R, I)(R r, I i) if (isIntegral!I) ElementType!R moveAt(R, I)(R r, I i) if (isIntegral!I)
{ {