// https://issues.dlang.org/show_bug.cgi?id=16472 enum e() = 0; template t(alias v = e!()) {} //Error alias dummy = t!(e!()); template E(F){ enum E { K = F(1) } } struct S(F = float, alias e_ = E!double.K) {} S!float x; // Error: E!double.K is used as a type alias T = E!double.K; struct S2(F = float, alias e_ = T) {} S2!float y; // alias makes it okay... struct S3(F = float, alias e_ = (E!double.K)) {} S3!float z; // just putting parens make it okay as well... wat!? // for coverage template G(T) { struct G { alias I = int; static int i; } } struct H(F = float, alias e_ = G!double) {} H!float a; struct H1(F = float, alias e_ = G!double.I) {} H1!float b; // https://issues.dlang.org/show_bug.cgi?id=21795 // struct H2(F = float, alias e_ = G!double.i) {} // H2!float c;