On 11 March 2012 15:35, Timon Gehr <timon.g...@gmx.ch> wrote: > On 03/11/2012 02:23 PM, Manu wrote: > >> On 11 March 2012 14:56, Timon Gehr <timon.g...@gmx.ch >> >> <mailto:timon.g...@gmx.ch>> wrote: >> >> On 03/11/2012 12:50 PM, Manu wrote: >> >> Nobody has acknowledged >> or disputed the majority of my points :/ >> >> >> I agree with the majority of your points. >> >> >> Cool, well that's encouraging :) >> I can't really argue the implementation details, all I can do is assert >> criteria/requirements as I see them. >> >> So what was the perceived issue with the pull request you mentioned in >> an earlier post? >> > > This is the pull request. > https://github.com/D-**Programming-Language/dmd/pull/**341<https://github.com/D-Programming-Language/dmd/pull/341> > > I think the issue with it is that there are no obvious issues with it. > > > I presume it only implemented the syntax, and not the >> ABI bits? >> >> > Exactly. It implements the assignment from built-in/library tuples to > multiple newly declared variables, but it does not implement multiple > return values. >
How does the syntax work precisely? Is it possible to do each of those things I mentioned earlier; assign to existing locals, ignore individual return values, etc? How would the language distinguish from this implementation of implicitly building/returning/unpacking a tuple, and from explicit intent to do so structurally? Does the syntax give the code generation enough information to distinguish multiple-return from struct byval?