Enumerate CTFE bug...

Stefan Koch via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Nov 21 07:36:10 PST 2016


On Monday, 21 November 2016 at 13:22:57 UTC, Paolo Invernizzi 
wrote:
> I'm not sure if it's the same as #15064 bug:
>
> import std.array, std.range, std.algorithm;
>
>   immutable static foo = ["a", "b", "c"];
>   auto bar(R)(R r)
>   {
>       string s = r[1];
>       return s;
>   }
>   immutable static res = foo.enumerate.map!bar().array;
>
> std/typecons.d(526): Error: reinterpreting cast from 
> inout(ulong)* to inout(Tuple!(ulong, immutable(string)))* is 
> not supported in CTFE
> bug.d(9):        called from here: r._Tuple_super()
> std/algorithm/iteration.d(593):        called from here: 
> bar(this._input.front())
> std/array.d(105):        called from here: __r2091.front()
> bug.d(15):        called from here: array(map(enumerate(foo, 
> 0LU)))
>
> ---
> Paolo

Yes looks like it.
Adding a special case in phobos should solve the problem.


More information about the Digitalmars-d-learn mailing list