makeIndex not working

Jonathan M Davis jmdavisProg at gmx.com
Sat Jul 2 19:22:22 PDT 2011


On 2011-07-02 18:14, Johann MacDonagh wrote:
> On 7/2/2011 9:00 PM, Johann MacDonagh wrote:
> > On 7/2/2011 9:00 PM, bearophile wrote:
> >> Johann MacDonagh:
> >>> I'm confused, what am I doing wrong here?
> >> 
> >> I think that Phobos needs way more&better unittests.
> >> 
> >> I think the error you receive reduces to this:
> >> 
> >> import std.range: isForwardRange;
> >> 
> >> void foo(R)(R r) if (isForwardRange!R) {}
> >> 
> >> void main() {
> >> immutable arr = [1, 2];
> >> foo(arr);
> >> }
> >> 
> >> Bye,
> >> bearophile
> > 
> > Strangely enough there is a unit test for this...
> > https://github.com/D-Programming-Language/phobos/blob/phobos-2.053/std/al
> > gorithm.d#L6742
> > 
> > 
> > Does this code fail to compile for you too? I want to make sure I didn't
> > mess up my config here.
> 
> Ah, here we go:
> 
> http://d.puremagic.com/issues/show_bug.cgi?id=6148
> 
> Replacing immutable with auto works. I'm still confused how the phobos
> unit tests pass though...

That's because they're using immutable(int)[], not immutable int[]. The 
elements in the range are immutable, but the range is not. Whereas with 
immutable int[], the whole thing is immutable, so it doesn't work. The range 
has to be mutable.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list