Commit graph

131 commits

Author SHA1 Message Date
David Simcha
817dc10f95 Fix hasElaborateCopyConstructor and hasElaborateAssign to look at whole representation. Also make std.range use hasElaborateCopyConstructor instead of rolling its own. 2010-09-04 19:35:27 +00:00
David Simcha
6b799db785 Fix some trivial documentation issues from Bugzilla. No changes to actual code. 2010-09-03 23:28:05 +00:00
David Simcha
08cf0ed9c7 hasPostblit needs to transitively search subobjects. 2010-09-03 04:22:04 +00:00
Steven Schveighoffer
7e89201cda Rewrote Appender to be safer and to not corrupt memory.
Fixed all places that use appender to use the safer interface.
bugzilla 4681: Appender access violation
2010-08-26 11:49:50 +00:00
David Simcha
6d5e623f26 InputRangeObject/OutputRangeObject 2010-08-22 18:46:09 +00:00
David Simcha
372641585f Clean up std.range enforce vs. assert situation. Also, a few small fixes for bugs discovered while reading the code. 2010-08-22 14:51:36 +00:00
David Simcha
63c6e670a9 Fix boundary case bug in stride slicing. 2010-08-22 14:24:10 +00:00
David Simcha
82bcaca481 Clean up std.range.Take a little, properly handle ref return stuff. 2010-08-21 19:41:02 +00:00
David Simcha
9471b3f525 Default moveBack, moveAt implementations for elements w/o postblit. This was fixed a long time ago for moveFront. 2010-08-20 04:41:28 +00:00
David Simcha
b6ab569a4a Lockstep opApply should take a scope delegate. 2010-08-20 00:40:16 +00:00
David Simcha
9b7cb69f99 More infiniteness propagation for std.range, remove faulty assumption that infinite ranges don't have ref return in Zip. 2010-08-20 00:34:30 +00:00
David Simcha
b4798c3f34 Bug 4603: array(iota(1, 0)) error 2010-08-20 00:06:06 +00:00
David Simcha
a95bb745ee One more Lockstep issue: _ranges should be shallow copied for consistency with regular foreach. 2010-08-19 04:58:37 +00:00
David Simcha
98f98a744e Optimize Lockstep and work around some compiler bugs. 2010-08-19 03:44:24 +00:00
David Simcha
096ddcad2a Fix a few silly mistakes in std.range. Also, add self as author, as I feel I've earned it. 2010-08-17 02:30:45 +00:00
David Simcha
c03041e5fd Clean up std.range.chain, fix several unlisted bugs and make the code more readable. 2010-08-17 02:26:46 +00:00
David Simcha
3235b577a7 Bug 3877: std.range.chain do not manage infinite ranges correctly 2010-08-17 00:50:06 +00:00
David Simcha
abb54f279c Lockstep StoppingPolicy should be a runtime arg, not a compile time one. 2010-08-16 03:31:59 +00:00
David Simcha
0318457f7c Two related bugs: 3123: std.algorithm.zip fails on 'lazy' ranges ,
4402:  std.range.Zip doesn't work w/ non-lvalue ranges.
2010-08-16 02:55:02 +00:00
David Simcha
c4cdd64f14 Add index variable support to Lockstep, since it ended up being trivial. 2010-08-16 00:14:26 +00:00
David Simcha
e8c0c8e5f2 Fix for small bug in single-range Lockstep. 2010-08-15 21:59:28 +00:00
David Simcha
2141dbf2fe Added Lockstep, hasLvalueElements. 2010-08-15 21:26:26 +00:00
David Simcha
1ec079b80a save() methods. 2010-08-15 03:28:19 +00:00
David Simcha
80b0054b9a Bug 4388: std.range.Radial assumes lvalue elements 2010-08-15 03:20:12 +00:00
David Simcha
ff8e358ad3 Bug 4345: std.range.take!string: "Nonsensical finite range with slicing but no length" 2010-08-15 02:17:30 +00:00
David Simcha
cd9ee04a63 Bug 4464: std.range.take does not always return Take!R 2010-08-15 01:48:04 +00:00
David Simcha
e2067aa2db Slicing support for Transversal, FrontTransversal. 2010-08-14 23:33:26 +00:00
David Simcha
11769b66af Slicing support for Stride. 2010-08-14 22:22:50 +00:00
David Simcha
693f31ac5a Bug 3894: std.range.Stride!R requires R.front() and R.back() to return by reference 2010-08-14 22:04:21 +00:00
David Simcha
1fc2c40d9c Better implementation of slicing in light of recent bug fix. 2010-08-14 20:14:02 +00:00
David Simcha
27e9afcb86 Unlisted Bug: std.range.iota() random access primitives inconsistent after popFront on floating point version 2010-08-14 18:32:58 +00:00
David Simcha
de899c64a1 Slicing for Iota. 2010-08-14 15:19:17 +00:00
David Simcha
81b248dd85 Bug 4403: std.range.FrontTransversal assumes lvalue elements 2010-08-13 03:12:08 +00:00
David Simcha
64b45ee4ee Bug 4404: std.range.Transversal assumes lvalue elements 2010-08-13 03:05:49 +00:00
David Simcha
687ae12600 Bug 4387: std.range.Cycle assumes lvalue elements. 2010-08-13 02:39:07 +00:00
SHOO
06f0bbd521 unittest and changelog for r1809 2010-08-06 08:45:09 +00:00
SHOO
ce5e6d2562 Bugzilla 4570: ElementType!(void[]) shows error message.
Fixed.
2010-08-05 14:16:28 +00:00
Andrei Alexandrescu
51690bb826 Improved retro 2010-07-28 08:03:04 +00:00
Andrei Alexandrescu
39739033b2 put(R, E) definition and fix for bugzilla 4456 2010-07-14 01:16:18 +00:00
Andrei Alexandrescu
a98c020493 Changed definition of isOutputRange and introduced universal function put(R, E) that puts an element in an output range. 2010-07-12 00:50:32 +00:00
Andrei Alexandrescu
723a603369 Changed definition of isOutputRange and also added the free function put that effects outputting stuff to such a range. 2010-07-09 04:18:41 +00:00
Andrei Alexandrescu
432e3fdfc8 Replaced std.contracts with std.exception throughout 2010-07-04 22:09:03 +00:00
Andrei Alexandrescu
11cc1f0f9b License format change 2010-07-04 21:45:22 +00:00
David Simcha
09962831b2 More higher order range testing improvements. 2010-07-03 21:42:27 +00:00
David Simcha
93032c1da8 @property cleanup for std.range. 2010-07-01 02:51:24 +00:00
David Simcha
619beee74d Improve unittests for higher order ranges in std.algorithm, fix some unlisted bugs. 2010-06-30 02:30:26 +00:00
David Simcha
f92cbf1534 More unittest improvements for std.range. Most of them are commented out b/c they don't work yet, but fixing them sanely is blocked by DMD bug 3294. 2010-06-29 02:58:31 +00:00
David Simcha
d179c32f17 More unittest improvements and wholesale fixing/cleanup for std.range. 2010-06-25 03:06:54 +00:00
David Simcha
be680b9b08 Start improving std.range unittests. Lots of bugs found already. 2010-06-24 00:38:40 +00:00
Andrei Alexandrescu
59a55d66fd Fixed bugzilla 3839 2010-06-23 15:50:01 +00:00