On Friday, June 14, 2013 01:09:18 David Nadlinger wrote: > There is a test in the DMD testsuite that verifies that the > evaluation order in the following statement > > a()[] = b()[] + c()[]; > > is b, c, a. > > I'm trying to figure out why this regressed with the 2.063 merge > in LDC, but (where) is this specified in the first place?
Walter has expressed a desire in the past to make it so that D requires that the evaluation order of arguments be left-to-right in order to avoid bugs, and while these aren't exactly function arguments, they're basically function arguments to a built-in function called +, so I could definitely see Walter wanting to require that the evaluation order be left-to-right. However, while Walter has expressed an interest in making it a requirement, AFAIK, it has never officially become one and the spec says nothing on the matter. - Jonathan M Davis