Created attachment 400 [details] Patch (DMD 2.030) The current declaration syntax does not handle a qualified type with an intermediate segment which does tuple indexing. For example, the following does not compile: -------------------- import std.typetuple; template Trait(alias v) { alias typeof(v) Type; } alias TypeTuple!(Trait!(42)) List; List[0].Type var; // -> "no identifier for declarator List[0]" -------------------- The compiler cannot parse "List[0].Type" as a type. The attached patch enables the compiler to handle such intermediate tuple indexing with a slight change to the BasicType2 syntax: -------------------- BasicType2: * [ ] [ Expression ] [ Expression .. Expression ] [ Type ] delegate Parameters FunctionAttributes_opt function Parameters FunctionAttributes_opt . IdentifierList // !! Add this --------------------
*** Issue 1503 has been marked as a duplicate of this issue. ***
*** Issue 2446 has been marked as a duplicate of this issue. ***
Fixed by https://github.com/dlang/dmd/pull/4516. *** This issue has been marked as a duplicate of issue 1215 ***