The PrimaryExpression rule allows module scope identifiers and types but not template instances. Dmd 2.040 allows them, though. So:
struct ss(S) {
static S s;
}
void foo() {
int x = .ss!(int).s;
}
compiles, though the grammar doesn't permit the '.' in front of ss.
Comment #1 by github-bugzilla — 2012-01-23T15:35:00Z