Ellery Newcomer wrote: > Ellery Newcomer wrote: >> Bill Baxter wrote: >>> On Tue, Nov 17, 2009 at 1:51 PM, KennyTM~ <[email protected]> wrote: >>>> On Nov 18, 09 05:40, Ellery Newcomer wrote: >>>>> Bill Baxter wrote: >>>>>> However, I think for the good of humanity we can accept that one >>>>>> little bizarre example of legal C syntax not doing the same thing in >>>>>> D. >>>>> int[] i; >>>>> >>>>> auto a = (i)[0]; >>>>> >>>>> what does this do? >>>> (i) should not construct a tuple. Probably (i,). >>> That's Python's solution and it seems to work out ok. >>> >>> --bb >> How do we express tuple types? Since we have tuple expression syntactic >> support, we should have tuple type syntactic support. Cuz I'm going to >> want stuff like >> >> Tuple!(int,int) [] lst; >> >> These won't work: >> >> [int,int] [] lst; >> (int,int) [] lst; //want >> {int,int} [] lst; >> >> these might: >> >> @(int,int) [] lst; //bleach, regardless of what symbol '@' is >> (,int,int) [] lst; //bleach >> alias (int,int) T; T [] lst; //bleach bleach bleach >> int,int [] lst; //requires tuple expressions be enclosed in () hmmmm... > > and you'd have to enclose the types in () in nonstatement locations
which is a big bleach >> >> actually, types vs expressions are already syntactically ambiguous, so >> (int,int) [] lst; doesn't lose much. It's not the kind of thing we >> should be encouraging, though.
