March 11, 2012 inout/const issue: assignments to field not allowed if field initializer present | ||||
---|---|---|---|---|
| ||||
It took me a while to narrow this down: struct Foo { int val = int.init; this(inout(int) nval) inout { this.val = nval; } } test.d(18): Error: cannot modify const/immutable/inout expression this.val Is there any special reason why this should be disallowed? I mean the same thing happens if you do a void initialization: int val = void; A bug? |
March 11, 2012 Re: inout/const issue: assignments to field not allowed if field initializer present | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | On 03/11/2012 02:46 AM, Andrej Mitrovic wrote:
> It took me a while to narrow this down:
>
> struct Foo
> {
> int val = int.init;
> this(inout(int) nval) inout {
> this.val = nval;
> }
> }
>
> test.d(18): Error: cannot modify const/immutable/inout expression this.val
>
> Is there any special reason why this should be disallowed? I mean the
> same thing happens if you do a void initialization: int val = void;
>
> A bug?
That a void-initialized field cannot be initialized is certainly a bug.
|
Copyright © 1999-2021 by the D Language Foundation