http://d.puremagic.com/issues/show_bug.cgi?id=6365#c15
I have cleanuped syntax, and updated patch. https://github.com/9rnsr/dmd/compare/expandTuples...declarationTuple ---- TupleDeclaration: StorageClasses ( IdentifierList ) = Initializer ; // 1 ( ParameterList ) = Initializer ; // 2-1 ( StorageClass TupleTypeList ) = Initializer ; // 2-2 TupleTypeList: TupleType TupleType , TupleTypeList TupleType: StorageClasses BasicType Declarator BasicType Declarator StorageClasses Identifier Identifier ---- // Example of 1 auto (i, j) = tuple(10, "a"); static assert(is(typeof(i) == int)); static assert(is(typeof(j) == string)); const (x, y) = TypeTuple!(1, 2); static assert(is(typeof(x) == const(int))); static assert(is(typeof(y) == const(int))); // Example of 2-1 (int i, string j) = tuple(10, "a"); static assert(is(typeof(i) == int)); static assert(is(typeof(j) == string)); // Example of 2-2 (auto c, r) = TypeTuple!('c', "har"); static assert(is(typeof(c) == char)); static assert(is(typeof(r) == string)); (const x, auto y) = TypeTuple!(1, 2); static assert(is(typeof(x) == const(int))); static assert(is(typeof(y) == int)); (auto a1, const int[] a2) = TypeTuple!([1], [2,3]); static assert(is(typeof(a1) == int[])); static assert(is(typeof(a2) == const(int[]))); ---- Kenji Hara
