On 12/8/2014 11:57 AM, deadalnix wrote:
On Monday, 8 December 2014 at 10:37:29 UTC, Walter Bright wrote:
On 12/8/2014 1:52 AM, deadalnix wrote:
On Monday, 8 December 2014 at 09:46:03 UTC, Walter Bright wrote:
I thought I could make this work, but it's a problem. There are two meanings
for scope when attached to a function:
T func() scope; // the 'this' pointer is 'scope'
scope T func(); // the function returns a 'scope' T
I have some ideas, but don't particularly like any of them. But I don't want
to bias things, so what ideas do you guys have?
I'm arguing for ages that qualifier before the return type qualify the return
type, and the one after the implicit argument. I stand by this.
Another problem with that is:
void func(scope T delegate() dg);
Nop. I actually made a proposal that was more complete and
handled such case.
qualifier on the left qualify the return type. qualifier in
between return type and function/delegate qualify both the symbol
and the context (it implicit parameter) and qualifier on the
right qualify only the context.
This would be inconsistent with the rest of the types, where qualifier on the
left affects the symbol.
But I like the idea of:
T scope delegate() dg;
as meaning the scope affects the return type. Is that what you meant?