digitalmars.D.learn - inout/const issue: assignments to field not allowed if field

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?

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.