Sounds like a regression to me. So what happens if it isn't const? It
should be an error regardless.

It still fails if the member is non-const.
Though, like Fredrik said, I would imagine that, since structs are value
types, this should be illegal, because it would have to be a recursive
structure - a Foo contains a Foo, which contains a Foo which contains a
Foo.. perhaps this error message is the compiler's own special way of
reporting this ;) as
struct Foo
{
[const] Foo* a;
}
Works.