<div class="gmail_quote">On Wed, Jun 23, 2010 at 19:36, David Simcha <span dir="ltr">&lt;<a href="mailto:dsimcha@gmail.com">dsimcha@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Ok, so I&#39;ll probably have time soon to do a serous cleanup of all these nagging @property and auto ref issues and improve the unittests in std.range and std.algorithm, across everything, not just the couple ranges that I worked on recently.  I&#39;m sick enough of all these little nagging issues that make ranges hard to use in D that I&#39;m willing to devote some significant effort towards solving them.  </blockquote>
<div><br>Oh, nice call! I&#39;m also getting tired of putting comments around the refs, release after release, to make ranges in phobos accept one another. I&#39;d be glad to be of help, if I can (though with two children sick right now, I don&#39;t promise to get enough sleep to be useful)<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Before I do, do we all agree on the following:<br>
<br>1.  All higher order ranges should use auto ref.<br></blockquote><div><br>My own tentative auto refs for std.range didn&#39;t change the lvalue/rvalue issues :(<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
2.  front(), empty(), back(), length() and save() are @property.<br>3.  popFront(), popBack(), and moveFront() are <u><i><b>NOT</b></i></u> @property.<br>4.  Higher order ranges should check for infinite-ness of the ranges they&#39;re operating on and propagate it (using enum bool empty = false instead of a function that propagates empty) where it makes sense, for example in Map and Filter.<br>

<br></blockquote><div><br>I&#39;d even go as far as saying that HOR should propagate their input&#39;s properties as much as possible, as you did with bug 2872 (hmm, I didn&#39;t find that a few months ago, that&#39;s why I posted 3871).<br>
Also, bug 3872.<br><br>Philippe<br><br></div></div>