On Wed, 2011-02-02 at 15:05 +0100, Simen Kjaeraas wrote: > Lars Tandle Kyllingstad <[email protected]> wrote: > > > A while ago I fixed issue 5052, but doing so I unwittingly broke David's > > earlier fix for issue 4464. I believe I have now fixed both issues (not > > committed to main Phobos repo yet): > > > > https://github.com/kyllingstad/phobos/commit/3948e3f61403bd7618913c36959158018970011d > > > > While fixing this, I noted that Take!R simply aliases to R when R is a > > type that supports slicing. This assumes that the slice has the same > > type as the slicee(?), which doesn't have to be the case -- at least as > > far as the compiler or hasSlicing!() are concerned. > > > > It is easy to fix in Take, but I've now discovered that the same > > assumption is made in a lot of places: Retro, Stride, Chain... the list > > goes on. Just do a search for hasSlicing, or look for things like > > > > _input = _input[i .. j]; > > > > Fixing it everywhere is likely to be a lot of work. Do you think it is > > worth it, or is this a tiny corner case? > > IMO, ranges that support slicing should return their own type as a slice. I > believe this is always the case in existing ranges, and that it's a good > idea > in general.
While I don't necessarily disagree with this idea, I would like to point out that there was, at one point, serious discussion about whether built-in array slices should be a separate type. (Remember T[new]?) -Lars _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
