--- Comment #2 from 2011-11-17 11:40:16 PST ---
(In reply to comment #1)
> > static assert(is(typeof(x) : const(int*)*)); // ok
> > static assert(is(typeof(a) : const(int[])[])); // ok
> I think these two lines should not compile.
> They are the part of bug 4251.
> Then, Both two cases should not have common type, IMO.

No, they are not part of bug 4251. This bug report is valid.

This is bug 4251:

immutable(int)** x;
immutable(int)[][] y;

static assert(is(typeof(x): const(int)**));
static assert(is(typeof(y): const(int)[][]));

Consider this:

immutable(int)** x;
int y;
// we now make *x point to y, even though y is not immutable:
const(int)** p = x; // bug 4251
*p=&y; // since p == x, this assigns &y to *x

That only works because immutable converted to const _two references deep_.

None of that is going on here, consider this:

immutable(int*)* x
int y;
// we now try to do the same thing
const(int*)* p = x; // assume this works
*p = y; // error!

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to