This is a real bug from the DIL compiler: struct Foo { enum { One, } } struct Bar { alias Foo F; alias F.One First; // alias Foo.One First; would work } void main() {} test.d(14): Error: alias test.Bar.First cannot alias an expression 0 What's interesting is that this compiles fine in DMD1.
Fixed in 2.059, don't know which commit.