front doesn't compile for arrays of immutable data

Kenji Hara k.hara.pg at gmail.com
Mon Jun 25 17:41:24 PDT 2012


On Monday, 25 June 2012 at 14:23:25 UTC, Roman D. Boiko wrote:
> import std.range;
> struct Element {
>   //immutable // uncomment to break compilation
>    int _i;
>   this(int i) { _i = i; }
> }
> void main() {
>   auto arr = [Element.init];
>   arr.front;
> }
>
> Declaring _i immutable yields the following compilation error:
>
> /usr/include/x86_64-linux-gnu/dmd/phobos/std/array.d(460): 
> Error: a[0LU] isn't mutable
> sample.d(11): Error: template instance 
> std.array.front!(Element) error instantiating
>
> Is this a bug, or I misunderstand something?

This is a bug of the compiler, and it is already filed.
http://d.puremagic.com/issues/show_bug.cgi?id=6336

I've already posted a pull request to fix the bug, but it has 
been hold a while.

Kenji Hara


More information about the Digitalmars-d-learn mailing list