DIP23 draft: Fixing properties redux
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Tue Feb 5 12:24:16 PST 2013
On 2/5/13 2:44 PM, Zach the Mystic wrote:
> On Tuesday, 5 February 2013 at 18:33:36 UTC, Andrei Alexandrescu wrote:
>> I have a DIP in the making that makes "ref" entirely sealed, i.e. it
>> makes it impossible to have a dangling ref in safe code. If that DIP
>> gets approved, then DIP23 gets considerably simplified because
>> operator& won't be applicable to the result of a function anymore.
>>
>>
>> Andrei
>
> I hope it at least considers my proposal with regard to 'out' return
> values. 'out' implies ref and guarantees that the result is as good as
> global:
>
> out int foo(ref int a) { return a; } // Error, 'out' return may not
> return ref parameter
> out int goo(ref int a) { return new int; } // Fine
>
> My impression was that this would solve 98% of problems, the other 2%
> requiring scope parameters, which also imply ref:
>
> ref int haa(ref int a, scope int b) { return b; } // Error, may not
> return scope parameter
> ref int gaa(ref int a, scope int b) { return a; } // Fine
I'm sorry, I didn't know of that proposal. Generally we're aiming for
economy of means i.e. we want to clarify semantics of existing syntax
instead of adding new syntax and semantics.
Andrei
More information about the Digitalmars-d
mailing list