On Wednesday 26 January 2011 18:59:50 Steven Schveighoffer wrote: > On Wed, 26 Jan 2011 18:28:12 -0500, Jonathan M Davis <jmdavisp...@gmx.com> > > wrote: > > I believe that it's supposed to take the common type of t1 and t2 and > > make the > > result an array of that type. So, assuming that the common type is T0, > > then it > > should work. However, it's not currently implemented that way. You could > > always > > create a bug report so that it doesn't get lost (assuming that no such > > report > > already exists). > > Object could also be the common type. When there exists multiple > possibilities, and none of the possibilities are types being passed to the > array literal, I think it just gives up (D usually gives up in the face of > ambiguity, instead of possibly making the wrong decision). > > But the problem here appears that there is no way to *force* it to make > the right decision. > > I'd like to see cast(T0[])[...] work, I think that should solve the > problem.
It probably doesn't for the exact same reason that the assignment didn't do it. The expression is evaluated and _then_ it's cast. So, if the expression isn't valid in and of itself, it fails. - Jonathan M Davis