DIP69 - Implement scope for escape proof references

Daniel N via Digitalmars-d digitalmars-d at puremagic.com
Thu Dec 4 04:56:30 PST 2014


On Thursday, 4 December 2014 at 09:25:11 UTC, Walter Bright wrote:
> http://wiki.dlang.org/DIP69
>
> Despite its length, this is a fairly simple proposal. It adds 
> the missing semantics for the 'scope' storage class in order to 
> make it possible to pass a reference to a function without it 
> being possible for it to escape.

Looks pretty solid, but I have one question based on the 
following two statements:

1) "Scope is inferred for function parameters if not specified, 
under the same circumstances as pure, nothrow, @nogc and safety 
are inferred."
2) "Scope is covariant, meaning it can be added to overriding 
functions."

How would this be handled in the current proposal?

class C
{
   int bar(ref T); // <-- inferred to be scope
}

class D : C
{
   override int bar(ref T); // <-- inferred to be NOT scope (but 
cannot remove scope when overriding)
}


More information about the Digitalmars-d mailing list