Commit graph

152 commits

Author SHA1 Message Date
Shin Fujishiro
3c048ac456 Migration of tup.field[k] to tup[k].
Replaced ad-hoc 'is tuple?' checks with isTuple template.

The "this._cache" change in std.range is just a workaround for bug 5046.
2010-10-13 05:39:53 +00:00
David Simcha
1fd3b635c5 Bug 5035: Schrödinger's Stride 2010-10-13 00:18:02 +00:00
Andrei Alexandrescu
822a29cf89 unittest to avoid regression for bugzilla 3181 2010-09-27 01:22:14 +00:00
Andrei Alexandrescu
58b0b79703 Fix for bugzilla 2930 2010-09-26 22:28:31 +00:00
David Simcha
b597d23f83 Bug 4888: Heavy reliance on Bug 3534 in Phobos range usage. I used a different approach here than the first one I tried. I only did what was necessary to make Phobos work instead of trying to fix the deeper issue of making std.algorithm to work w/ const/immutable arrays. 2010-09-18 21:00:52 +00:00
David Simcha
ab60a7d7a1 Fix std.range.Zip. 2010-09-18 00:48:42 +00:00
David Simcha
5bc6e09d2b Mitigate const issues in std.range. Everything except Zip now at least works with const/immutable arrays of primitives. 2010-09-18 00:34:20 +00:00
David Simcha
a1c63984cc Fix debug code in SortedRange. 2010-09-17 04:06:56 +00:00
David Simcha
a0162ed834 Make SortedRange work with const/immutable arrays. 2010-09-17 00:32:28 +00:00
Andrei Alexandrescu
bf93b229c1 Replaced the random number generator with a cheaper one in SortedRange's constructor 2010-09-16 18:22:48 +00:00
Andrei Alexandrescu
627023c5d9 Fixed unlisted bug in SortedRange's constructor 2010-09-16 18:15:30 +00:00
David Simcha
72d6bf1217 Add back lowerBound, upperBound, canFindSorted, equalRange to std.algorithm, but with "scheduled for deprecaton" pragmas on instantiation. 2010-09-15 23:02:23 +00:00
David Simcha
f252d5e611 Support pointers to structs in std.range.put(). 2010-09-15 22:41:50 +00:00
Andrei Alexandrescu
a92a8a9c4e Fix for bugzilla 4861 2010-09-13 22:58:10 +00:00
David Simcha
ff0c2b3d3b Support moveFront() and friends and assignable elements where possible. 2010-09-13 01:53:39 +00:00
Walter Bright
0b091d3eac add Source link 2010-09-12 05:11:46 +00:00
David Simcha
89c9bf697d Zip shouldn't require ranges to define moveFront and friends if elements don't have elaborate copy c'tors. 2010-09-12 04:46:48 +00:00
David Simcha
f7dbbfdedd Assignable element support for Stride. 2010-09-12 04:08:40 +00:00
David Simcha
1015641e6f Support assignable elements for Retro. 2010-09-12 03:49:13 +00:00
David Simcha
326760ef35 Iota should Unqual all its parameters to work w/ const/immutable since its parameters can't have indirection anyhow. 2010-09-09 20:46:37 +00:00
Andrei Alexandrescu
efb5c12066 Fixed Zip, added SortedRange 2010-09-08 13:19:58 +00:00
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